我有一个文件Unit.cs
public class Unit
{
public UnitType UnitTypeState {get;set;}
}
public enum UnitType
{
Folder = 0,
Teststeps = 1,
}
当我将枚举定义放入另一个类如UnitDTO时,我得到了这个例外:
属性“UnitTypeState”不是“Unit”类型的声明属性。使用Ignore方法或NotMappedAttribute数据批注验证是否未从模型中显式排除该属性。确保它是有效的原始属性。
那不是因为属性UnitTypeState是Unit类中声明的属性。
如何在不将枚举移回Unit类的情况下解决这个问题?
更新
我仍然对这个错误做了一些研究:
“创建模型时无法使用上下文。”
奇怪的是我在具有UnitTyeState属性的实体的父实体上获得此异常?!
using (var context = new ITMS.DataAccess.ITMSContext())
{
return context.Templates.ToList();
}
所以似乎创建了模板实体然后抛出了这个异常?或者像这样表现EF:在所有每个实体的第一个数据库访问中,或者创建整个模型?
答案 0 :(得分:0)
EF目前不支持嵌套类型 - 适用于StructuralType(即实体和复杂类型)和枚举类型。
添加与EF工作项完全相关的链接:http://entityframework.codeplex.com/workitem/119
答案 1 :(得分:0)
尝试使用以下内容,也许enum只需要从原语派生出来?
public enum UnitType : int
{
Folder = 0,
Teststeps = 1
}