如何在EntityFramework中使用createdBy字段创建BaseEntity?

时间:2015-03-21 15:45:10

标签: c# entity-framework oop ef-code-first

这是我的应用程序的类图:

Class Diagram

当我想运行这个简单的代码时:

using (var db = new AppContext())
{
    var u1 = new User { firstName = "A", lastName = "B" };

    db.users.Add(u1);

    db.SaveChanges();
    Console.ReadLine();
}

抛出此异常:

其他信息:无法确定类型'CodeFirstNewDataBase.Model.User'和'CodeFirstNewDataBase.Model.User'之间关联的主要结尾。必须使用关系流畅API或数据注释显式配置此关联的主要结尾。

我在我的项目中使用Table per Hierarchy映射,如下所示:“

public class BaseEntityConfig : EntityTypeConfiguration<BaseEntity>
{
    public BaseEntityConfig()
    {
        this.Property(x => x.id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
    }
}

public class UserConfig : EntityTypeConfiguration<User>
{
    public UserConfig()
    {
        this.Map(m =>
        {
            m.MapInheritedProperties();
            m.ToTable("User");
        });
    }
}

我该如何解决这个问题?

我是EF代码的新手

1 个答案:

答案 0 :(得分:0)

我使用电动工具生成了模型类,并根据我的需要调整了模型类和映射。希望这可以帮助 https://msdn.microsoft.com/en-us/library/jj200620.aspx