所以我正在构建一个基础库,我们称之为A,它有许多简单的类。该库不应使用Entity Framework引用,因为您可以在不使用数据库的情况下使用这些对象。
然后我有另一个名为A.EntityFramework的库,它应该添加使用Entity Framework将这些对象放入数据库的能力。
我的问题是,为了能够将它们与Entity Framework一起使用,我需要在基础库中的类定义上使用[Key],[Index]等属性。但是那些属性是在Entity Framework中定义的,该库没有引用...
解决这种情况的正确方法是什么?
答案 0 :(得分:3)
您可以在OnModelCreating
类的DbContext
方法中定义这些属性。
例如:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//Class1
modelBuilder.Entity<A.Class1>.HasKey(p => p.ID);
modelBuilder.Entity<A.Class1>.Property(p => p.Field1).IsRequired().HasMaxLength(50);
//Class2
modelBuilder.Entity<A.Class2>.HasKey(p => new {
p.Key1,
p.Key2
});
modelBuilder.Entity<A.Class2>.Property(p => p.Key1).IsRequired().HasColumnOrder(1);
modelBuilder.Entity<A.Class2>.Property(p => p.Key2).IsRequired().HasColumnOrder(2);
}
您可以详细了解Entity Framework Fluent API here。