我正在使用带有 Razor/MVC 3 的 VS 2010 创建一个表单,其中用户 1 使用 RequestQueue 模型(这只是一个队列表)向数据库提交信息。用户 2 然后拉取此信息,批准它,然后通过 DbRequestForm 模型将数据发送到主数据库。然而,该模型由几个子模型(Data_Dictionary、SERVER_DATABASE 和 DatabaseRequestInfo)组成,因为提交的数据需要转到三个单独的表。
问题是,每当我批准将数据从 RequestQueue 提交到 DbRequestForm 时,我都会收到一条错误消息,指出 DbRequestForm 没有主键。但是,每个子模型都有一个PK。我还尝试将 [Key]public int SrvrDB_ID { get; set; }
和其他变体添加到 DbRequestForm 无济于事。
初始型号:
public class RequestQueue
{
[Key]
public int SrvrDB_ID { get; set; }
public string dbName { get; set; }
public int InitialSpaceNeeded { get; set; }
public string ScheduledJobSetup { get; set; }
public string PII_data { get; set; }
}
封装模型:
public class DbRequestForm
{
public Data_Dictionary Data_Dictionary { get; set; }
public DatabaseRequestInfo DatabaseRequestInfo { get; set; }
public SERVER_DATABASE SERVER_DATABASE { get; set; }
}
基于最后三个表格的模型:
public class Data_Dictionary
{
[Key]
public int SrvrDB_ID { get; set; }
public string PII_data { get; set; }
}
public class SERVER_DATABASE
{
[Key]
public int SrvrDB_ID { get; set; }
public string dbName { get; set; }
}
public class DatabaseRequestInfo
{
[Key]
public int SrvrDB_ID { get; set; }
public int InitialSpaceNeeded { get; set; }
public string ScheduledJobSetup { get; set; }
}
任何想法如何避免这个错误?提前致谢!
编辑:具体错误是'
System.Data.Edm.EdmEntityType: : EntityType 'DbRequestForm' 没有定义键。定义此 EntityType 的键。System.Data.Edm.EdmEntitySet: EntityType: EntitySet DbRequestForms 基于没有键的类型 DbRequestForm '