我有一个名为DeviceType的模型类,它是这样的:
public class DeviceType
{
int ID { get; set; }
String Type { get; set; }
String Description { get; set; }
EntityCollection<AttributeDefinition> AttributeDefinitions { get; set; }
}
AttributeDefinition定义如下:
public class AttributeDefinition
{
int ID { get; set; }
String Name { get; set; }
bool IsPrivate { get; set; }
bool IsInherited { get; set; }
}
我正在尝试创建一个视图来编辑DeviceType的详细信息。在该视图中,我想要一个包含每个AttributeDefinition的表作为可编辑行,以便您可以更新同一页面上的每个AttributeDefinition。
我尝试关注this post,但是我收到了这个错误:
EntityCollection已初始化。该 应仅调用InitializeRelatedCollection方法进行初始化 在对象图的反序列化期间新的EntityCollection。
有没有办法在不诉诸AutoMapper之类的情况下做到这一点?也许使用FormCollection或使用ViewModel?
答案 0 :(得分:0)
通常不要在视图模型中使用命名空间System.Data
的类。使用List
或其他集合类更改视图模型。当您从数据库中读取数据并检索EntityCollection
时,您需要在POCO ojbect中转换您的实体并将此新结构用作视图模型。
答案 1 :(得分:0)
我建议你只为你的视图创建一个单一的实体/模型。我不确定DeviceType和AttributeDefinition是如何相关的,但你的模型看起来像这样:
public class DeviceTypeEditModel
{
int ID { get; set; }
String Type { get; set; }
String Description { get; set; }
EntityCollection<AttributeDefinition> AttributeDefinitions { get; set; }
AttributeDefinition AttributeDefinition { get; set;}
}