簡體   English   中英

實體框架v4 - >需要POCO和實體的一些幫助

[英]Entity Framework v4 -> need some help with POCO's and Entities

我正在使用EF4,我有兩個實體,我希望映射到同一個 POCO 我不知道怎么能這樣做。

實體1→Foo(這表示數據庫中的表FOO)
POCO→Foo

實體2→FooView(這表示數據庫中的FooView視圖)
POCO→Foo

我明白我需要做點什么

IObjectSet<Foo> _foos = CreateObjectSet<Foo>();

// Note spelling of the Entity.
IObjectSet<Foo> _foosView = CreateObjectSet<Foo>("FooViews"); 

但是當我嘗試這個時,它確實編譯,但它失敗並出現以下異常:

System.ArgumentException:System.ArgumentException:指定的實體類型“MyProject.Core.Foo”與EntitySet“FoosViews”中的“EntityFramework.SqlServerModel.FoosView”類型不匹配。

有什么建議?

以下是要查找的事項清單:

  1. 您的存儲模型應具有:
    1. 兩個EntitySetsFooFooView
    2. 兩個EntityTypesFooFooView
  2. 您的概念模型應該具有:
    1. 兩個EntitySetsFooFooView - 兩者EntityType設置為ModelName.Foo
    2. 一個EntityTypeFoo
  3. 您的映射應該有兩個EntitySetMappings
    1. Foo與一個EntityTypeMapping (“ModelName.Foo”)與一個MappingFragment (“Foo”)
    2. FooView與一個EntityTypeMapping ( “MODELNAME。 ”)與一種MappingFragment (“ FooView”)

你應該新的能夠執行以下內容:

Foo foo = new ModelEntities()
    .CreateObjectSet<Foo>("FooView")
    .First();

您可以通過執行以下操作為自己做一個開始:

  1. FooFooView添加到您的模型中
  2. FooMapping Details ,單擊Add a Table or View並選擇FooView
  3. 從模型中刪除FooView
  4. 保存模型並在XML編輯器中打開它
  5. RTM之前<StorageModels>找到<EntityType Name="FooView">並從<Key>刪除任何不正確的條目(它應匹配<EntityType Name="Foo">
  6. 刪除<EntityTypeMapping Name="IsTypeOf(Foo)" /><EntityTypeMapping Name="IsTypeOf(FooView)" /> (它們導致我的錯誤)

從beta 2開始,實現上述功能將打破設計師的角色

在NHibernate中,應該使用Projections來解決這個問題。 所以,我認為必須存在與實體框架類似的東西。 我用Google搜索了一下,然后我就來了:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM