我知道我们可以管理 EF 使用约定处理元数据的方式,我想知道是否可以使用某种约定更改实体值,例如:我有一个现有的数据库并且所有 varchar 的列都已填充最后有空格,当我选择实体时是否可以修剪所有字符串值?
问问题
135 次
1 回答
0
有一个现有的数据库,并且所有 varchar 的列最后都用空格填充,当我选择实体时是否可以修剪所有字符串值?
是的,您可以修改 *.tt 文件(实体框架文件之一,用于生成实体)。
我的修剪和空字符串的代码(在 *.tt 文件中替换该函数):
public string Property(EdmProperty edmProperty)
{
string typ = _typeMapper.GetTypeName(edmProperty.TypeUsage);
if (typ == "string")
{
string prop = "_" + _code.Escape(edmProperty);
return string.Format(
CultureInfo.InvariantCulture,
"\r\n\tprivate string " + prop + ";\r\n\t" +
"{0} {1} {2} \r\n\t{{\t\t{3}{6} {4}{5} \t}}",
Accessibility.ForProperty(edmProperty),
_typeMapper.GetTypeName(edmProperty.TypeUsage),
_code.Escape(edmProperty),
_code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
_code.SpaceAfter(Accessibility.ForSetter(edmProperty)),
"\r\n\t\tset" +
"\r\n\t\t{" +
"\r\n\t\t\t" + prop + " = String.IsNullOrWhiteSpace(value) ? null : value.Trim();" +
"\r\n\t\t}" +
"\r\n",
"\r\n\t\tget" +
"\r\n\t\t{" +
"\r\n\t\t\treturn " + prop + ";" +
"\r\n\t\t}");
}
else
{
return string.Format(
CultureInfo.InvariantCulture,
"\r\n\t{0} {1} {2} {{ {3}get; {4}set; }}",
Accessibility.ForProperty(edmProperty),
_typeMapper.GetTypeName(edmProperty.TypeUsage),
_code.Escape(edmProperty),
_code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
_code.SpaceAfter(Accessibility.ForSetter(edmProperty)));
}
}
于 2013-06-24T17:00:39.467 回答