使用EF和MVC4可以指定模型中包含外键列。虽然这通常不是 OR 建模的一部分,但是当您使用MVC controller with read/write actions and views, using Entity Framework
选项生成控制器时,它允许MVC4自动生成带有下拉列表的视图,用于外键关系。
在这种情况下,我遇到了创建对象的问题。
问卷
候选:
我遇到的问题是在创建视图后回复以创建新问卷ModelState.IsValid
是错误的。在调查时,列出的错误是The parameter conversion from type 'System.String' to type 'Data.Candidate' failed because no type converter can convert between these types.
ModelState.Keys包括Questionnaire.Candidate
以及Questionnaire.CandidateId
(有效)。
我确信这很简单,但我想听听一些解决方案。 viewbag只有一个下拉列表集,视图的@model类型为@model Data.Questionnaire
。没有绑定到Questionnaire.Candidate.
的编辑器字段。
答案 0 :(得分:0)
由于我不知道为什么内置EF模型不喜欢MVC生成的脚手架,对于启用了外键列的创建回发,我已经恢复到更安全的解决方案(仍然很高兴听到它失败的原因)外的所述盒):
该理论认为使用EF域实体作为视图模型存在许多问题,包括:
所以基本上我现在有一个CreateCandidateQuestionnaireVM类,只有必要的字段来为新实例选择合适的值。