0

Userとの関係を持つBlogオブジェクトを作成したい。関係を作成するには、最初にユーザーエンティティを選択してから、ブログオブジェクトのユーザープロパティに設定する必要がありますか?Entity Frameworkのサンプルでは、​​UserオブジェクトをViewStateに設定し、基本的なキャッシュなどの関係を作成する必要があるときにそれを取得することを提案しています。

これは必要ですか?これを行う他の方法はありますか?(linq-to-sqlのように、selectなしでのみ外部キーを設定します。)

ここに私のコードサンプルがあります。

Blog blog = new Blog
            {
                Name = blogName,
                Slogan = slogan,
                User = Entities.Users.First(u => u.Id == userId)
            }

Entities.AddToBlogs(blog);
Entities.SaveChanges();

編集(別の質問の機会を与えるため):不明な点やその他の点はありますか?

4

2 に答える 2

1

次のソリューションを使用して、コンテキストから対応するエンティティを取得せずに外部キーを設定します。

Blog blog = new Blog            
{                
   Name = blogName,                
   Slogan = slogan,                
   UsersReference.EntityKey = new EntityKey("EntityModel.Users", "UserId", userId)            
}

Entities.AddToBlogs(blog);
Entities.SaveChanges();
于 2009-08-26T09:59:11.643 に答える
0

これは現在公式にサポートされていませんが、将来のバージョンに含まれる可能性があります

ただし、ハッキングできる場合があります。私はこれを試したことはありませんが、アイデアは概念的に正しいようです:

  1. 新しいユーザーを作成し、ID を適切に設定します。オブジェクト コンテキストにアタッチします。
  2. これまでに行った変更を忘れるようにオブジェクト コンテキストに指示します。
  3. 次に、新しいブログを作成し、User プロパティを作成したばかりのユーザーに設定します。
  4. オブジェクト コンテキストの変更を保存します。

明らかに、ユーザーが実際にデータベースに存在しない場合、これはひどく失敗します。

良いアイデアのように思えましたが、うまくいかないようです。:(

于 2009-01-14T14:11:21.363 に答える