質問

いテーブルに見える約のようになります:

CREATE TABLE Lockers 
{
  UserID int NOT NULL PRIMARY KEY (foreign key),
  LockerStyleID int (foreign key),
  NameplateID int (foreign key)
}

すべてのキーに関連その他のテーブル、その方の申請は、いやすく伝Idをパラメータとしていうこと:

Locker l = new Locker { 
  UserID = userID, 
  LockerStyleID = lockerStyleID, 
  NameplateID = nameplateID 
};
entities.AddLocker(l);

ってことでLINQ to SQLなEF?

役に立ちましたか?

解決

この欠損らしい特徴の迷惑に多くの人です。

  • 良いニュース:MSアクセスするには課題です。純4.0の製品をご用意しています。
  • 悪いニュース:今、だっ3.5だと少しの作業が可能です。

だかのようになります:

Locker locker = new Locker();
locker.UserReference.EntityKey = new System.Data.EntityKey("entities.User", "ID", userID);
locker.LockerStyleReference.EntityKey = new EntityKey("entities.LockerStyle", "ID", lockerStyleID);
locker.NameplateReference.EntityKey = new EntityKey("entities.Nameplate", "ID", nameplateID);
entities.AddLocker(locker);
entities.SaveChanges();

他のヒント

私は物事を簡単にするために行ってきたことは部分クラスに外部キープロパティを自分で追加されます:

public int UserID
{
   get
   {
      if (this.User != null)
         return this.User.UserID;
   }
   set 
   {
      this.UserReference.EntityKey = new System.Data.EntityKey("entities.User", "ID", value);
   }
}

あなたはこれらのIDの基づいて実体を構築する拡張メソッドを作ることができます。

のEntityKeyを使用すると、あなたの問題を解決します;)

アルクます。

あなたは、DBスキーマは、例えば、計算列を追加することである「汚染」気にしない場合は、

別の方法あなたが表現FK_Customerを持つ新しい計算列FK_Customer_Computedを定義することができFK_Customer外部キーフィールドを持っていた場合。あなたが発生した場合\あなたのEDMXモデルを更新フィールドは、あなたが、あなたのエンティティ・オブジェクトから参照することができ、通常のフィールドのように表示されます。

またはEF4を待つ:)

ディランの答えに続き、アレックス・ジェームスはフルで問題を説明し、どの部分クラス+不動産ソリューションについて行き、まさにこの上でブログを書いています。

<のhref = "http://blogs.msdn.com/b/alexj/archive/2009/03/25/tip-7-faking-foreign-key-properties-in-net-3-5- sp1.aspx」のrel = "nofollowを">偽造外部キー - EF3.5する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top