使用实体框架时的InvalidCastException

分号

我正在尝试在会话类中保存用户列表,但是InvalidCastException在执行POST时遇到了问题

这是我的User类:

public class User
{
    [Key]
    [DataMember]
    public String Email { get; set; }

    [DataMember]
    public String Password { get; set; }

    [DataMember]
    public Boolean Admin { get; set; }

    public User(String email, String password, Boolean admin)
    {
        Email = email;
        Password = password;
        Admin = admin;
    }
}

这是我的对话课:

[DataContract]
public class Conversation
{
    [Key]
    [DataMember]
    public string Key { get; set; }
    [DataMember]
    public string ConversationName { get; set; }
    [DataMember]
    public string Administrator { get; set; }
    [DataMember]
    [ForeignKey("Email")]
    public List<User> Members { get; set; }

    public Conversation(string key, string name, string admin, List<User> members)
    {
        Key = key;
        ConversationName = name;
        Administrator = admin;
        Members = members;
    }

    public Conversation()
    {

    }
}

这是会话控制器:

邮政:

    [HttpPost]
    public async Task<IHttpActionResult> PostConversation(Conversation convo)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        foreach (var user in convo.Members)
        {
            db.Entry(user).State = EntityState.Unchanged;
        }

        db.Conversations.Add(convo);
        await db.SaveChangesAsync();

        return CreatedAtRoute("DefaultApi", new { name = convo.Key }, convo);
    }

得到:

[HttpGet]
public IQueryable<Conversation> GetConversations()
{
    return db.Conversations;
}

编辑帖子声明:

{
"Key": "123",
"ConversationName": "Test",
"Administrator": "Ken",
"Members": [{"Email": "[email protected]","Password" : "Passw-1", "Admin" : "true"},
            {"Email": "[email protected]","Password" : "Passw-1", "Admin" : "false"}]
}

我得到的错误是:

“ ExceptionMessage”:“无法将类型为'System.Collections.Generic.List`1 [AcademicAssistant.Models.User]'的对象转换为类型为'AcademicAssistant.Models.User'。”,

泰德24

您的模型是错误的。由于您之间存在N:N关系,Conversation因此User您需要ForeingKey从之前的对话中删除属性Members,并且需要ICollection<Conversation> Conversation在User类中添加属性,或者根据需要使用FluentApi进一步配置该关系

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用实体框架时的InvalidCastException

来自分类Dev

调用附加实体框架5时发生InvalidCastException

来自分类Dev

使用实体框架时实现业务逻辑

来自分类Dev

使用实体框架插入记录时出错

来自分类Dev

使用实体框架时发生内存泄漏

来自分类Dev

使用实体框架时的designer.cs

来自分类Dev

使用 Vagrant 时的实体框架添加迁移

来自分类Dev

使用selectmany时删除时的实体框架参考约束错误

来自分类Dev

使用实体框架时是否必须使用Linq?

来自分类Dev

使用实体框架时如何在联接中使用OR

来自分类Dev

使用实体框架发布Web API时出错

来自分类Dev

使用Include时防止实体框架添加ORDER BY

来自分类Dev

在实体框架中使用拦截器时如何禁用

来自分类Dev

在实体框架中使用包含语句时选择特定的列

来自分类Dev

使用DbGeography距离和实体框架时的响应为空

来自分类Dev

使用实体框架连接数据库时出错

来自分类Dev

使用实体框架时规范化SQL表

来自分类Dev

使用 SqlParamter 时查询不返回任何内容:实体框架

来自分类Dev

使用实体框架扩展批量方法时上次修改的属性

来自分类Dev

使用 linq 和实体框架时插入行的问题

来自分类Dev

使用 SQL Server 时模拟实体框架的 .Last()

来自分类Dev

使用 MSDTC 时 Windows 2019 上的实体框架异常

来自分类Dev

实体框架-添加实体时DbUpdateException

来自分类Dev

使用.Include时,实体框架不会加载相关实体,除非上下文知道相关实体

来自分类Dev

无法使用实体框架修改实体

来自分类Dev

在实体框架中使用SqlQuery

来自分类Dev

使用实体框架映射图像

来自分类Dev

使用实体框架删除记录

来自分类Dev

使用实体框架删除行

Related 相关文章

热门标签

归档