【发布时间】:2014-08-10 06:03:40
【问题描述】:
为方便起见,我有几个带有嵌套枚举的引用实体。例如:
public class StatusA
{
public enum Values
{
Active = 1,
Inactive = 2,
InProgress = 3
}
}
public class StatusB
{
public enum Values
{
Sent = 1,
Accepted = 2,
Expired = 3
}
}
public class EntityA
{
public StatusA.Values Status {get; set;}
}
public class EntityB
{
public StatusB.Values Status {get; set;}
}
我在配置模型时遇到以下异常:“StatusA+Values”类型和“StatusB+Values”类型都具有相同的简单名称“Values”,因此无法使用在同一个模型中。给定模型中的所有类型都必须具有唯一的简单名称。在 Code First fluent API 中使用“NotMappedAttribute”或调用 Ignore 以从模型中显式排除属性或类型。
试图修复它我发现 NotMappedAttribute 不适用于枚举。我还尝试了流畅的 API .Ignore<T>(也需要 ref 类型,而不是枚举)和 .Ignore(IEnumerable<Type>),但没有运气。谷歌搜索也不是很有帮助。
还有其他方法可以从模型中排除这些枚举吗?
【问题讨论】:
-
试过私人不公开?
-
谢谢,但必须公开。
标签: c# entity-framework ef-code-first entity-framework-6 ef-fluent-api