C# 如何在MVC应用程序中显示数字状态
我正在基于MVC构建一个新的应用程序,并考虑LINQ到SQL/实体框架。我有一个具有数字状态的实体,如(0-打开,1-活动,2-关闭),我应该将逻辑放在哪里以在视图/控制器或自动生成的模型中显示适当的字符串(枚举? 我是否应该将所有这些逻辑移到业务层?C# 如何在MVC应用程序中显示数字状态,c#,linq-to-sql,model-view-controller,C#,Linq To Sql,Model View Controller,我正在基于MVC构建一个新的应用程序,并考虑LINQ到SQL/实体框架。我有一个具有数字状态的实体,如(0-打开,1-活动,2-关闭),我应该将逻辑放在哪里以在视图/控制器或自动生成的模型中显示适当的字符串(枚举? 我是否应该将所有这些逻辑移到业务层? 我是否应该将业务逻辑和新属性(以显示字符串状态)添加到LINQ-To-SQL构建的分部类中?实际上,LINQ-To-SQL可以将整数直接绑定到枚举(数据库中的int(etc)或[n][var]char列数据),因此一个简单的答案是创建一个枚举(在
我是否应该将业务逻辑和新属性(以显示字符串状态)添加到LINQ-To-SQL构建的分部类中?实际上,LINQ-To-SQL可以将整数直接绑定到枚举(数据库中的
int
(etc)或[n][var]char
列数据),因此一个简单的答案是创建一个枚举(在数据/存储库层中),并更改dbml(通常通过设计器),使其在状态列中使用(完全限定的)枚举类型
如果这不是一个选项,那么我会将类中的status属性(再次通过dbml)重命名为类似于StatusCode
,并添加一个返回首选表示形式(作为枚举或字符串)的分部类,即
将int直接转换为enum类型不是比switch/case更好吗?获取{return(Status)StatusCode;}@Lucas-如果他们可以直接强制转换,那么他们可以(主要根据定义)使用更简单的LINQ到SQL绑定。。。
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
}
}
}
}