我有一个数据库视图,该视图跨SQL Server 2005中的许多表进行联接。它看起来像这样:

SELECT     
   m1.MenuName AS menu_name, m2.MenuName AS sub_menu_name, p.ProductName, od.amount
FROM         
   dbo.tblMenus AS m1 
FULL OUTER JOIN
   dbo.tblMenus AS m2 
FULL OUTER JOIN
   dbo.tblProductsRelMenus AS pm ON m2.Id = pm.SubMenuId ON m1.Id = pm.MenuId 
FULL OUTER JOIN
   (SELECT     
       dbo.tblOrderDetails.ProductId, SUM(dbo.tblOrderDetails.Ammount) AS amount
    FROM          
       dbo.tblOrderDetails 
    FULL OUTER JOIN
       dbo.tblOrders AS o ON dbo.tblOrderDetails.OrderId = o.OrderId
    WHERE (o.OrderDestroyed = 0)
    GROUP BY dbo.tblOrderDetails.ProductId) AS od 
RIGHT OUTER JOIN
   dbo.tblProducts AS p ON od.ProductId = p.ProductId ON pm.ProductId = p.ProductId

当我尝试创建ADO .Net实体数据模型时,它抱怨在SSDL分区中没有主键。 然后我发现了这一点:

http://msdn.microsoft.com/en-us/library/dd163156.aspx

但我不了解有关定义查询的部分。 当然,我只想要一列具有唯一数字的键来定义键,或者?

  <EntityType Name="SoldItemsView">
    <Key>
       <PropertyRef Name="SoldItemsViewId" />
    </Key>
    <Property Name="SoldItemsView" Type="int" Nullable="false" />
    <Property Name="menu_name" Type="nvarchar" MaxLength="100" />
    <Property Name="sub_menu_name" Type="nvarchar" MaxLength="100" />
    <Property Name="ProductName" Type="nvarchar" MaxLength="50" />
    <Property Name="amount" Type="int" />
  </EntityType>

但是,如何用唯一数字填充此列?

谢谢,

巴里

===============>>#1 票数:0

您只能在视图中使用列。 要定义实体键,您必须从视图中选择一列(或一组列),以唯一地标识该视图中的记录。

  ask by Baz translate from so

未解决问题?本站智能推荐:

1回复

如何在实体框架中删除外键引用

我正在更新由实体框架构建的模型。 我从设计器中删除了一个实体,然后弹出一个错误消息:“外键约束'FK_Table1_Table2'...没有为表Table2指定映射。现在我真的不想将Table2映射到实体中。我该怎么办清除edmx并避免此类错误?我可以只将Table1中的外键映射到int32字
1回复

实体框架-添加实体时DbUpdateException

我试图使用实体框架记录添加到表中,我得到DbUpdateException当我执行这种方法_entities.SaveChanges(); : 我的Player模型如下所示: 我先通过设计器创建了模型,然后生成了数据库。 以这种方式创建比赛可以正常进行,但是由于某些原因,玩家
1回复

实体框架代码第一个内部联接,没有主外键关系

我Entity Framework 5 code first使用Entity Framework 5 code first 。 我正在尝试在2个表之间建立一个内部联接,但我不确定该怎么做。 这两个表没有主键/外键关联,但是它们具有公共字段Domain。 tblServer表:
3回复

Ado.Net实体:对象不显示链接成员(外键)

我有一个简单的数据库方案:用户,帐户。 用户与帐户有1对多的关系。 我已经生成了一个ado.net实体数据模型,我可以创建用户和帐户,甚至可以将它们链接在一起。 在数据库中正确填充了account.user_id,因此理论上我应该能够通过实体访问C#中的User.Account.ToL
1回复

使用ADO.NET MetaDataWorkspace,如何获取每个实体的所有外键的列表?

感谢您的光临。 我需要查询我的实体类以获得所有实体(表)的列表,并且对于每个实体/表,我需要所有外键(导航属性?)的列表以及记录的数量存储在该实体的相应数据表中。 到目前为止,我已经找到了如何获取所有实体的列表的方法,但是对于如何获取外键和记录每个实体的计数我还是很困惑。 任何帮助
11回复

IEntityChangeTracker的多个实例不能引用实体对象。 在实体框架4.1中向实体添加相关对象时

我正在尝试保存“员工”详细信息,其中包含“城市”的引用。 但是每次尝试保存我的联系人时,都会得到验证“ ADO.Net Entity Framework一个实体对象不能被IEntityChangeTracker的多个实例引用”的异常。 我已经阅读了很多文章,但仍然不知道该怎么做...我的
1回复

如何在ADO.Net实体模型中将具有外键的表更新到另一个表?

我有2个表,Table1有一个主键'CustomizationId',而Table2有一个与之匹配的FK Customizationid。 表2没有主键。 我正在尝试从基于Web的表单添加新记录。 我试图将其保存到数据库,我收到一个错误: 当我调用SaveChanges时,我收
1回复

如果要使用ado.net实体框架映射数据库表,是否应该为外键遵循特定的命名模式?

我正在读关于实体框架如下教程,使用代码优先方法链接 它提到要让EF解释这两个类之间的FK,我需要使用以下2种命名模式或规则: 然后,实体框架将属性解释为外键属性: Rule1(如果它名为<navigation property name><primary
2回复

实体框架为映射到视图的实体生成的SQL

我已将EDM实体映射到数据库(SQL Server 2005)视图。 该实体是一个简单的电影实体,具有ID,Name和DateInserted属性,该属性对应于具有以下定义的View: 选择iMovieID,vchName,dtInsertDate 来自dbo.t_Movie W
2回复

如何将关系数据添加到ASP.net MVC数据实体“创建”视图?

假设我有一个工作人员表,以及一个多对多关系中单独的工作人员角色表(即,中间有一个StaffMembersInRoles表)。 使用ADO.net实体框架,我们有一个像这样的对象模型: 替代文本http://martindoms.com/img/datamodel.png 我有一个带有cr