从this question的代码示例中,我向我的包装器添加了一个字符串属性,然后我只想将它用于GUI和测试目的,我不希望将此字符串属性保存到数据库中。包装器看起来与使用此附加组件的链接问题中的采样相同:
public string StringValue {
get {
return stringValues[Value];
}
set {
if (stringValues.Contains(value))
t = (StreetType)stringValues.Single(s => s == value).IndexOf(value);
}
}
public static implicit operator string(StreetTypeWrapper w) {
return w == null ? stringValues[0] : w.StringValue;
}
public static implicit operator StreetTypeWrapper(string s) {
return new StreetTypeWrapper() { StringValue = s };
}
更不用说我从未改变StreetTypeMapping
复杂类型映射类来包含这个新属性,我不想在数据库中使用它,但是EF仍然保持它仍然存在,尽管我只映射了{{ 1}}这种复杂类型的属性。
我有什么不妥吗?
如何避免这种恼人的行为? (虽然我指定了要映射的内容,但EF决定要映射什么)
答案 0 :(得分:1)
您可以将[NotMapped]
属性添加到属性
[NotMapped]
public string StringValue { .... }
如果有某种方法可以将属性设置为只读,那么EF也会忽略它。