我是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>)
答案 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);
但到目前为止似乎还不错。