【问题标题】:linq mvc foreign key valuelinq mvc 外键值
【发布时间】:2012-09-03 20:58:00
【问题描述】:

我是 MVC 的新手。我正在尝试通过在线教程找到自己的方法。

这么说,

我有一张桌子 A (a1,a2,a_b1) 和一个表 B (b1,b2)

a_b1 是 B.b1 的外键。

我在 Visual Studio 中使用其模板生成了列表视图。 我可以访问表 A 的 a1 和 a2 字段。 <%=Html.Encode(item.a1) %><%=Html.Encode(item.a2) %>

但是当我尝试访问 A.a_b1 值(不是对表 B 的引用)时,我只能从表 B 中获取对对象的引用。 谢谢基里尔 我不知道什么是 CodeFirst、ModelFirst 或 DatabaseFirst。 我有这些表,并使用 Visual Studio 和 Linq 为表 A 和 B 生成类。 所以 A.a1, A.a2 出现在创建的对象中。 我在字段中有 A.B 和 A.BReference

我认为应该有一种方法可以访问列的值而不是引用。 你能帮帮我吗?

我不想执行连接,只需要值。

我已尽力具体说明,但如果不清楚,请告诉我。

谢谢

编辑:

我使用 ADO.Net 实体数据模型来生成与我的表关联的对象。

在我的控制器中,我有:

A sample1=repository.search(id);
string s1 = sample1.a1;
string s2 = sample1.a2;
string s3 = sample1.a_b1; (ERROR)

我有

   sample1.B   (an object of type B)
and 
sample1.BReference  (object of type EntityReference<B>)

【问题讨论】:

  • 尝试通过“sample1.a_b1.b1”或“sample1.a_b1.b2”访问
  • 谢谢,当我这样做时,我的视图中出现空指针异常。我想我需要加载 a_b1 对象,但我不知道如何将其发送到查看。 (我是 MVC 的新手)
  • 初始化控制器中的 a_b1 对象并将其发送到视图,即“sample1.a_b1 = new b();”

标签: asp.net-mvc linq foreign-keys


【解决方案1】:

为遇到同样问题的人解答:

我定义了一个新的类A_text,它包含A的所有字段(包括a_b1)

在 Select 中,我使用了:

var result = from pt in db.A
                     where pt.id== id
                     select new A_text
                     {
                         id= pt.id,
                         a1= pt.a1,
                         a2 = pt.a2,
                         a_b1= pt.a_b1.id
                     };
        return (result.FirstOrDefault());

我不确定与之前相比的效率

 db.Search(id);

但目前看来还可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多