linq mvc外键值

时间:2012-09-11 00:10:18

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

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

据说,

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

和a_b1是来自B.b1的外键。

我使用其模板在Visual Studio中生成了List视图。 我可以访问表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>)

1 个答案:

答案 0 :(得分:0)

回答那些遇到同样问题的人:

我定义了一个新的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);

但到目前为止似乎还不错。