从数据库表中获取值,其中一列表(外键)等于输入值

时间:2014-03-28 10:23:23

标签: linq entity-framework

我正在使用linq从数据库表中获取值,其中一列表(外键)等于输入值,但在编写linq时我没有得到该属性。

var country =
    from x in db.Viewerships
    where x.AssetId == model.ID
    select x.CountryName;

在上面的代码x.AssetId中找不到,因为AssetId被用作表中的外键。

1 个答案:

答案 0 :(得分:0)

当您在模型中添加表格时,会出现一个复选框,其中显示"在模型中包含外键列"如果您没有勾选此选项,则不会包含外键您实体中的列。但是,默认情况下会为其他实体创建导航属性,因此您有2个选项

  1. 重新添加带有所述选项的表格
  2. 使用像这样的导航属性
  3. 代码:

    var country =
        from x in db.Viewerships
        where x.Asset.ID == model.ID
        select x.CountryName;
    

    假设您的资产是导航属性,而资产表的主键列是ID