我在Entity Framework4.2中将以下表映射为每个类型的表。
Gear (ID, Name, Description) // base table
Weapon (ID, Damage, Bonus) // FK to Gear table.
Armor (ID, Kinetic, Energy) // FK to Gear table.我可以把武器和装备分开来:
var weapons = db.Gear.OfType<Weapon>(); // Gets just weapons.
var armor = db.Gear.OfType<Armor>(); // Gets just armor.但我想不出如何只获取基本行。我希望像这样的东西可以工作,但它仍然得到了所有人。
var basicGear = db.Gear.OfType<Gear>();发布于 2012-01-14 08:47:16
试一试
var basicGear = db.Gear.Where(g => !(g is Weapon || g is Armor));发布于 2012-01-14 08:45:57
因为你想要所有不是特别武器或装甲的列。一般来说,我会说你可以尝试使用Except method。
var weapons = db.Gear.OfType<Weapon>(); // Gets just weapons.
var armor = db.Gear.OfType<Armor>(); // Gets just armor.
var allOtherStuff = db.Gear.Except(weapons).Except(armor);甚至是
var allOtherStuff = db.Gear.Except(weapons.Union(armor));然而,我不知道Except在实体框架中是否有到SQL的转换(基于这里的some answers,他们可能不会,但这个MSDN page可能会)。
https://stackoverflow.com/questions/8859012
复制相似问题