遇到實體框架問題。我一直使用EntityKey填充EntityReferences,以消除在添加實體引用時無需查詢數據庫的時間。現在我想爲協會(EntityCollection)做同樣的事情,但我不知道從哪裏開始。下面是什麼,我試圖做EntityCollections設置一個EntityReference.EntityKey來填充集合
表
CREATE TABLE [dbo].[Foo](
[FooId] [int] IDENTITY(1,1) NOT NULL,
[FooName] [nvarchar](50) NOT NULL,
)
CREATE TABLE [dbo].[Bar](
[BarId] [int] IDENTITY(1,1) NOT NULL,
[BarName] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Bar] PRIMARY KEY CLUSTERED
)
CREATE TABLE [dbo].[FooBar](
[FooId] [int] NOT NULL,
[BarId] [int] NOT NULL,
CONSTRAINT [PK_FooBar] PRIMARY KEY CLUSTERED
)
ALTER TABLE [dbo].[FooBar] WITH CHECK ADD CONSTRAINT [FK_FooBar_Bar] FOREIGN KEY([BarId])
REFERENCES [dbo].[Bar] ([BarId])
ALTER TABLE [dbo].[FooBar] CHECK CONSTRAINT [FK_FooBar_Bar]
ALTER TABLE [dbo].[FooBar] WITH CHECK ADD CONSTRAINT [FK_FooBar_Foo] FOREIGN KEY([FooId])
REFERENCES [dbo].[Foo] ([FooId])
ALTER TABLE [dbo].[FooBar] CHECK CONSTRAINT [FK_FooBar_Foo]
細節現在,當我這個映射到的EntityFramework我得到2個實體(Foo和Bar)具有多對多的關係。
我試圖做的是添加一個新的Foo實體與5酒吧關聯 我有酒吧的ID,但我不想查詢數據庫以獲得所有5個酒吧。我寧願只設置一個entityKey。
這可能嗎?
例如:
Foo myFoo = new Foo();
Foo.Name = "Hello"
Foo.Bars = // now I would like to just populate a set of EntityKeys for the EntityCollection
Craig, 使用存根實體似乎是比填充EntityKey更好的方法,並且遠比再次查詢數據庫好得多。這是真的? – 2010-03-10 14:24:40
取決於。在EF 4中,我可能會使用FK關聯。在EF 1中,存根實體可能比設置「EntityKey」更好,但需要(可能是間接的)訪問上下文。 – 2010-03-10 14:29:09