C#-定制数据库表的定制实体构建器
作者:互联网
我正在使用Entity Framework 6设计一个多租户应用程序.此应用程序中的一个关键要求是允许每个租户具有自定义表.这意味着一个名称相同的表在模式之间可能有所不同.
例如,一个租户可能有一个“人”表,其中包含:ID,名字,姓氏,出生日期.
另一个租户可能有一个带有以下内容的“人”表:ID,名字,LastnName,BirthDate,FavoriteColor.
当我设计模型时,这就是我所拥有的:
public class Person
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
这适用于第一个租户,但是不会加载第二个租户中的custom列.我希望做的是这样的:
public class Person : Dictionary<string, object>
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
然后编写一个自定义的模型映射器/构建器,它将没有匹配属性的表列放入字典集合.
这有几个问题:
>实体框架创建一个SELECT语句,该语句列出所有
模型中的属性/列.不知何故,我需要更换
用*列出,以便所有列,甚至EF都不知道
关于,得到回报.
>我需要能够拦截结果集,映射已知列
模型属性,然后将未知列放入
字典.
有可能吗?有解决这个问题的更好方法吗?
解决方法:
我遇到了类似的问题,一个更通用的问题.
在我的应用程序中,最终用户能够定义其on数据对象.在设计时,我什至不了解Person类.从设计的角度来看,这意味着向运行时甚至都不知道的类添加属性.
标签:entity-framework-6,net-4-5,code-first,c,entity-framework 来源: https://codeday.me/bug/20191122/2056404.html