关于数据库的问题

时间:2015-01-01 16:20:55

标签: database entity-framework

我在C#中使用Entity Framework编写聊天

这是我的代码

public class User
{
    [Key]
    public long id { get; set; }

    public List<UserMessages> userMessages { get; set; }
}

public class UserMessages
{
        [Key]
        public long Id { get; set; }

        public long ChatMateId { get; set; }
        public string text { get; set; }
        public DateTime? dateTime { get; set; }
}

实体框架代码 - 首先强迫我在Id类属性UserMessages中放置[Key]字段,我根本不需要此字段,因为UserMessages是弱实体,指向id

User

创建表后,我可以从sql表中删除long Id,没有任何问题吗?

1 个答案:

答案 0 :(得分:0)

不,你不能。 EF要求所有表格上都有[Key],否则会爆炸。即使映射到SQL视图(因为我已经学到了很多困难,相信我)。

在您的情况下,您实际上应该在该表中使用正确的外键,如下所示:

 public class UserMessages
 {
    [Key]
    public long Id { get; set; }

    [ForeignKey("User")]
    public long UserId { get; set; }

    public long ChatMateId { get; set; }

    public string text { get; set; }

    public DateTime? dateTime { get; set; }

    public User User { get; set; }
 }