我正在构建一个基于MVC的新应用程序并考虑LINQ-To-SQL / Entity Framework。我有一个具有数字状态的实体(0 - 打开,1 - 活动,2 - 关闭),我应该把逻辑放在视图/控制器或自动生成的模型中显示适当的字符串(Enum ??) ? 我应该将所有这些逻辑移到业务层吗? 我应该为LINQ-To-SQL构建的部分类添加业务逻辑和新属性(显示字符串状态)吗?
答案 0 :(得分:2)
实际上,LINQ-to-SQL可以直接将整数绑定到枚举(数据库中的int
(等)或[n][var]char
列数据),因此一个简单的答案就是创建一个枚举(在您的数据/存储库层中),并更改dbml(通常通过设计器),以便它使用状态列的(完全限定的)枚举类型。
如果这不是一个选项,那么我会将类中的status属性(再次通过dbml)重命名为StatusCode
,并添加一个返回首选表示的部分类(作为枚举或字符串)即
partial class YourType { // only do this if direct enum mapping isn't an option
public Status Status { // could also be string
get {
switch(StatusCode) {
case 0: return Status.Open;
// etc
}
}
}
}