12

アプリケーションの Entity Framework モデルに基づく WCF Data Service を使用しています。

これで、 type の列を持つテーブルを追加する必要がありますHierarchyId。そのテーブルを EDMX ファイルに追加すると、HierarchId列がクラス ファイルに表示されません。

を利用するにはどうすればよいHierarchyIDですか?Entity Framework が をサポートしていないことを読みましたがHierarchyID、どうすればこれを達成できますか?

4

2 に答える 2

24

いつでも aHierarchyIdをその文字列表現 (のようなもの) に変換し、その文字/1/3/4/1列を WCF データ サービス経由で送信できます。

更新:この計算された永続化された列を SQL Server テーブルに追加すると、その新しい列が EF モデルに確実に表示され、これを使用して WCF および WCF Data Services 経由で送り返すことができるはずです。

ALTER TABLE dbo.YourTable
ADD HierarchyString AS (your hierarchyID field).ToString() PERSISTED

更新 #2: ドキュメントを読んでください! 文字列を解析/1/3/4/1してHierarchyId型に戻すことができます -HierarchyId::Parse(string)または通常のCAST(string as HierarchyId)方法を使用してそうしてください。

于 2010-11-30T17:28:05.713 に答える
10

計算列を使用する場合は、次のようにプロパティに DatabaseGenerated データ注釈も必要になることに注意してください。

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string HierarchyString { get; set; }

詳細については、この記事を確認してください: Entity Framework Code First Computed Properties

于 2011-08-02T14:42:21.227 に答える