首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF 5 Code-First self referencing表

EF 5 Code-First self referencing表
EN

Stack Overflow用户
提问于 2014-03-24 16:33:52
回答 1查看 502关注 0票数 0

下面是我的代码:

基类:

代码语言:javascript
复制
public class BaseEnt
{
    [Key]
    public int ID { get;set; }
    public DateTime InsertDate { get; set; }

    public int InsertUserID { get; set; }
    public DateTime UpdateDate { get; set; }
    public int UpdateUserID { get; set; }
    [Timestamp]
    public byte[] Timestamp { get; set; }

    public virtual User InsertUser { get; set; }
    public virtual User UpdateUser { get; set; }
}

用户实体:

代码语言:javascript
复制
public class User:BaseEnt
{
    public string Username { get; set; }
    public string Fullname { get; set; }

    public virtual ICollection<User> InsertedUsers { get; set; }
    public virtual ICollection<User> UpdatedUsers { get; set; }

}

创建模型:

代码语言:javascript
复制
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>()
                     .HasRequired(t => t.InsertUser)
                     .WithMany(t=>t.InsertedUsers)
                     .HasForeignKey(t => t.InsertUserID).WillCascadeOnDelete(false);
        modelBuilder.Entity<User>()
                     .HasRequired(t => t.UpdateUser)
                     .WithMany(t=>t.UpdatedUsers)
                     .HasForeignKey(t => t.UpdateUserID).WillCascadeOnDelete(false);

    }

种子:

代码语言:javascript
复制
    protected override void Seed(MCFDataContext context)
    {
        context.Users.Add(new Entities.User {ID=1,Fullname="Rusty Boi ",Username="jhaskdhaksdhk",InsertUserID=1,UpdateUserID=1,UpdateDate=DateTime.Now,InsertDate=DateTime.Now });

    }

下面是我在种子部分遇到的错误:

{“无法确定依赖操作的有效顺序。依赖项可能由于外键约束、模型要求或存储生成的值而存在。”}

EN

回答 1

Stack Overflow用户

发布于 2014-03-24 16:41:41

这里的问题是某种“鸡和蛋”的问题。可能的解决方案:

  • 使外键InsertUserIDUpdateUserID可以为空,
  • 做了一个设计更改:也许用户表不应该有InsertUserID、UpdateUserID。这可以通过引入另一个不具有InsertUserIDUpdateUserID属性或类似

的基类来解决

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22604389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档