在 VB.NET MVC 应用程序中创建实体框架伙伴类以扩展验证



在实体数据模型中,我有以下复杂类型

<EdmComplexTypeAttribute(NamespaceName:="MEMORABLEModel", Name:="EDMspGetContact_Result")>
<DataContractAttribute(IsReference:=True)>
<Serializable()>
Partial Public Class EDMspGetContact_Result
    Inherits ComplexObject
#Region "Factory Method"
.... etc

我正在用 VB.Net 编写MVC 4.0应用程序

我想向解决方案中另一个项目中的复杂类型定义添加验证

我试图在我的 MVC 项目中定义一个分部类,但即使它编译了,我也知道它以某种方式是错误的因为基架模板不会生成所有属性

在过去的 6 个月里,我已经从传统编码转向面向对象编码,我真的很难克服这样的问题。 感谢引导我出错的地方。我尝试添加命名空间。

<MetadataType(GetType(EDMspGetContact_ResultMD))> _
<ScaffoldTable(True)> _
Partial Public Class EDMspGetContact_Result
    ' Note this class has nothing in it.  It's just here to add the class-level attribute.
End Class
Public Class EDMspGetContact_ResultMD
    '    ' Name the field the same as EF named the property - "FirstName" for example.
    '    ' Also, the type needs to match.  Basically just redeclare it.
    '    ' Note that this is a field.  I think it can be a property too, but fields definitely should work.
    <Required()> _
    <Display(name:="Last Name")> _
    Public LastName As String
End Class

EF 生成的模型类是上述哪个类定义?如果它是最后一个,则也需要将其标记为 Partial ,以便分部类中定义的扩展成员成为同一类的一部分。这可能意味着更改 EF 用于生成模型类的 T4 模板。

这是假设您首先使用数据库或模型。如果你首先使用代码,我想你只需要让你的主模型类部分化。

相关内容

  • 没有找到相关文章

最新更新