0
我有跨越多个表的连接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 secion中没有主键。后来我发现这一点:
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>
但是,如何填充此列中的唯一编号?
感谢,
巴里
你的表现如何查询该视图? ... –
我的第一个想法是帮助它,并选择tblMenus主键。 –
为什么选择tblMenus的主键可以解决这个问题? – Baz