0

私はLINQを初めて使用するので、方法のようないくつかのチュートリアルと公式ドキュメントに従っています。開発者ネットワークでデータベース関係をマップします。

私はこれを実行しています:

1) Locality と Region の 2 つのクラスを取得しました。この「テーブル」間には 1 対多の関係があるため、1 つの Region に複数の Locality があります。関連付けを次のようにマッピングしました。

領域:

private EntitySet<City> _cities = new EntitySet<City>();

[Association(Storage = "_cities", ThisKey = "RegionId", OtherKey = "RegionId")]
public EntitySet<City> Cities
{
    get { return _cities; }
    set { _cities.Assign(value); }
} 

Region には、さらに 2 つのフィールド RegionId と Name があります。City にも 2 つのフィールドがあります: CityId、Name (もちろん、RegionId 外部キーの横)。

次に、データベースにデータを入力します。したがって、次のようなクエリを使用してすべての都市を選択できます。

var city = from City cities in db.cities
           select cities;

そして、City Entity に属するすべてのプロパティを確認できます。しかし、このクエリを実行すると:

var regiones = from Region region in db.regions
               select region;

Cities EntitySet は常に空であるため、RegionId,Name にしかアクセスできません。私は今、私が間違っていることをしていないので、あなたの何人かが私に手を差し伸べてくれることを願っています.

4

2 に答える 2

0

コンテキストで LazyLoading が有効になっていることを確認してください。そうでない場合は、オンにするか、db.regions.Include("Cities") を使用して Cities を明示的に読み込むことができます。

于 2013-09-17T12:06:12.553 に答える
0

時間を無駄にして申し訳ありませんが、最終的に私の間違いを発見しました。フラグ IsDbGenerated = true を使用して Region の主キーを定義しましたが、準備された値を City の外部キーに送信しているため、関係が壊れています。地域の主キーと出来上がり。

于 2013-09-17T14:59:26.417 に答える