我想将{PKMvrMedsProductIssuesId'替换为类似x=>x.PKMvrMedsProductIssueId
的内容或任何不基于字符串的内容。为什么?因为如果数据库人选择重命名该字段,我的程序将崩溃。
public static SelectList MvrMedsProductErrors(this SelectList Object)
{
MedicalVarianceEntities LinqEntitiesCtx = new MedicalVarianceEntities();
var ProductErrorsListBoxRaw =
(
from x in LinqEntitiesCtx.ViewLookUpProductIssuesErrorsNames
select x
);
Object = new SelectList(ProductErrorsListBoxRaw, "PKMvrMedsProductIssuesId", "MvrMedsProductIssuesErrorsNames");
return Object;
}
答案 0 :(得分:1)
您正在使用SelectList
。为了调用该构造函数,您必须有一个字符串。我们可以提出的任何更改仍然会导致字符串(从某处)传递到该构造函数。
好消息是:该字符串可以来自任何地方。它可以来自配置,来自数据库......你喜欢哪里。
答案 1 :(得分:0)
我不知道这里的确切上下文(究竟是什么“PKMvrMedsProductIssuesId”),但你可以使用这样的辅助方法:
public static string GetPropertyAsString<T>(Expression<Func<T, object>> expression)
{
return GetPropertyInfo(expression).Name;
}
使用表达式获取字符串:
GetPropertyAsString<MyType>(x => x.MyTypeProperty);
('MyTypeProperty'是您的'PKMvrMedsProductIssuesId'任何'MyType'您的某个类型,您可能已经定义了您的属性)