1

エンティティ データ モデルには、次の複合型があります

<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
4

1 に答える 1

0

上記のクラス定義のうち、EF によって生成されたモデル クラスはどれですか? それが最後のものである場合は、部分クラスで定義された拡張メンバーが同じクラスの一部になるように、部分としてもマークする必要があります。これは、EF がモデル クラスを生成するために使用する T4 テンプレートを変更することを意味する場合があります。

これは、最初にデータベースまたはモデルを使用していることを前提としています。最初にコードを使用している場合は、メイン モデル クラスを部分的にするだけでよいと思います。

于 2012-11-18T15:37:46.763 に答える