c# – 我应该为域名和EF使用单独的模型吗?
发布时间:2020-12-15 18:20:36 所属栏目:百科 来源:网络整理
导读:场景:我正在编写一个处理报告生成的程序. 我将报告存储在数据库中,映射到EF模型.有一些非数据库字段(即某些字段是根据数据库中的其他字段自动计算的).有一个类只能映射到数据库,另一个类获取该信息还有其他计算字段是否有意义? 即,与codefirst数据库交互的
场景:我正在编写一个处理报告生成的程序.
我将报告存储在数据库中,映射到EF模型.有一些非数据库字段(即某些字段是根据数据库中的其他字段自动计算的).有一个类只能映射到数据库,另一个类获取该信息还有其他计算字段是否有意义? 即,与codefirst数据库交互的样本类将是 public class Report{ public int CategoryOneSeverity {get; set;} public int CategoryTwoSeverity {get;set;} public string Title {get;set;} } 创建另一个类是否有意义,例如: public class ReportModel{ public int CategoryOneSeverity; public int CategoryTwoSeverity; public string Title; public int RiskRating{ get{ return CategoryOneSeverity + CategoryTwoSeverity; } } } 或者RiskRating属性应该在EF模型中. 解决方法
是的,我绝对相信你应该有不同的类来建模你的域而不是数据库.除非您的应用程序非常简单,否则如果您尝试直接映射域对象,则必须更改它们以匹配您需要的数据结构,并可能暴露您不想公开的内容.将其视为违反单一责任原则;如果您将其作为域对象并直接映射,则您的类有两个原因需要更改.一个是响应不断变化的业务需求,另一个是响应不断变化的数据存储架构.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |