在Asp.NET MVC 3 + EF CF项目中的POCO实体中有一些常用功能是不是很糟糕? 假设我需要函数来获取实体属性生成的下一个记录代码:
public class Warehouse {
public string ReceivingRecordCodeFormat { get; set; }
public int ReceivingRecordCodeNextNumber { get; set; }
#region functions
public string GetNextReceivingRecordCode()
{
return ...
}
#endregion
}
答案 0 :(得分:0)
我建议让POCO尽可能简单,并为这样的方法创建服务层。
答案 1 :(得分:0)
虽然我同意maxlego认为POCO课程应尽可能简单,但我不确定EF Code First实体应该是POCO。
我的做法是包含仅影响该实体类中的单个实体的逻辑。特别是如果可以从多个服务(或多个控制器,如果您将它们用作服务层)调用这些方法。否则,您的服务将不得不调用其他服务,如果您使用任何类型的IoC容器,这将导致服务和循环引用问题之间的紧密耦合。
将逻辑放在实体中具有最佳的重用潜力,而无需在多个位置重复代码。
对于涉及实体集合的逻辑,我使用服务,而不是尝试在实体类中使用静态方法。
我还建议使用POCO视图模型,而不是直接将EF实体传递给视图,特别是如果你开始向它们添加逻辑。