我已经使用通用存储库模式设置了实体框架代码。
这是我的模型:
public interface IEntity {
int Key { get; set; }
}
public class Product : IEntity {
public int Key {
get {
return ID;
}
set {
ID = value;
}
}
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public IEnumerable<Category> Category { get; set; }
}
public class Category : IEntity {
public int Key {
get {
return ID;
}
set {
ID = value;
}
}
public int ID { get; set; }
public string Name { get; set; }
public int ParentID { get; set; }
}
这是我的通用存储库中的上下文:
public class EntitiesContext : DbContext, IDbContext {
public DbSet<Product> Products { get; set; }
public new IDbSet<T> Set<T>() where T : class {
return base.Set<T>();
}
}
如您所见,产品有一个类别的 IEnumerable。如果我要创建一个数据库来匹配这将是这样的:
产品 - ID - 名称 - 等。
类别 - ID - 名称 - 等。
ProductCategories - ProductID - CategoryID
为什么我的数据库创建后没有连接表?