EF持有我不想要的列,如何避免这种行为?

时间:2011-11-10 22:03:38

标签: entity-framework enums mapping

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决定要映射什么)

1 个答案:

答案 0 :(得分:1)

您可以将[NotMapped]属性添加到属性

[NotMapped]
public string StringValue { .... }

如果有某种方法可以将属性设置为只读,那么EF也会忽略它。