我有一个具有Code
和Type
属性的表。我有另一个具有foo_id
属性的表。 foo_id
是Code
Type == foo
,因此在这两个表之间创建约束时,我需要将Code
与foo_id
和Type
匹配为常数Foo
。
有办法做到这一点吗?我不想在我的第二个表格中添加Type
列,而每一行的值都相同,因为这似乎是浪费。
Table 1 Table 2
Code <--------------- Foo_id Foo_id maps to Code
Type <---"Foo" But Table 2 doesn't have a property
that maps to Type. But it should be
constant
我在Table 1
文件中创建了Table 2
和.edmx
之间的关联。当我单击该关联然后单击参考约束时,我可以看到Code
和Type
作为主键,但我只能foo_id
我可以用于依赖属性。所以我想指定Type
的约束应该是常量。
除了Type
之外,Foo
还有其他值,但Table 2
特别关注的是Foo
类型。
我可以通过以下方式解决这个问题:
var x = from i in Table2
select new { someT2Prop = i.Table2Prop,
someT1Prop = (from r in Table1 where r.Code == i.Foo_id
&& r.Type == "Foo" select r.Table1Prop).FirstOrDefault() };
但这有点混乱。我想要一个从Table 2
到Table 1
的导航属性,所以我可以这样做:
var x = from i in Table2
select new { someT2Prop = i.Table2Prop,
someT1Prop = i.Table1.Table1Prop };
答案 0 :(得分:2)
如果我理解你的问题,那么:
创建视图:
SELECT Code
FROM [Table 1]
WHERE Type = "Foo"
然后从此视图对代码值进行约束。