这是一个复杂的问题...
我有一个服务器端应用程序(独立)。通常,此服务器获取客户端连接并为每个客户端创建逻辑层。
我遇到的问题是数据。 逻辑层依赖于项目,每个项目都有一些共同的逻辑流程和许多独特的流程。
我想创建一个核心逻辑类,所有其他项目都可以扩展它们 - 这只是介绍....
数据
使用此数据表的所有项目(单个公用表的示例)
ItemID ItemName State
所以我可以创建一个DbContext
public class CoreContext : DbContext {
public DbSet<Item> Items { get; set; }
}
public class Item {
public int ItemID { get; set; }
public string ItemName { get; set; }
public int State { get; set; }
}
现在,数据的变化是在创建新的独特项目时。 exmaple项目A也可以有这个表(ItemsAttribute):
ItemID AttributeName AttributeValue
此表只能用于项目A而不能用于项目B.和项目B添加另一个表(ItemsUsers):
ItemID UserID Permission
我尝试扩展CoreContext
类,如此
public class ProjectBContext : CoreContext {
public DbSet<ItemsUsers> ItemsUsers { get; set; }
}
或扩展模型类,如此
public partial class Item {
public List<ItemAttributes> Attributes {get;set;}
}
public class ItemAttributes {
public string AttributeName { get; set; }
public string AttributeValue { get; set; }
}
CoreContext和ProjectBContext中的每一个都拥有它自己的项目和DLL文件
我不知道什么是更好的做法 - 而且我对一些解决方案感到困惑:
CoreContext
- 问题:不解决模型的添加字段任何建议或反馈都会有所帮助......谢谢!