我在C#中创建了一个Linq to SQL类。 获取dbml文件中存储的precedure。 添加了新的数据源(类型对象)。
所以我想获取Linq返回的Table的值。
LeasinggesellschaftDataContext blabla = new LeasinggesellschaftDataContext();
blabla.getDetails(2);
MessageBox.Show(blabla.Gesellschaft.ElementAt<Gesellschaft>(0).Gesellschaftsname.ToString());
LeasinggesellschaftDataContext = dbml文件中的类。 getDetails =存储过程。 Gesellschaft = sp的返回表。
我想要“Gesellschaftsname”列的价值。
有人能说出为什么ElementAt Methode无效吗?
_______编辑___________
我从你那里得到了提示并制作了一个变量,请参阅下面的代码:
LeasinggesellschaftDataContext blabla = new LeasinggesellschaftDataContext();
ISingleResult<getDetailsResult> returnset = blabla.getDetails(2);
getDetailsResult lala;
lala = (getDetailsResult)returnset;
MessageBox.Show(lala.Handelsregister.ToString();)
foreach (getDetailsResult result in returnset)
{
MessageBox.Show(result.Handelsregister);
}
所以“下一个”的问题是。为什么foreach工作和lala没有访问?
LeasinggesellschaftDataContext blabla = new LeasinggesellschaftDataContext();
ISingleResult<getDetailsResult> returnset = blabla.getDetails(2);
getDetailsResult lala;
lala = returnset.First();
MessageBox.Show(lala.Handelsregister.ToString());
答案 0 :(得分:1)
returnset
不属于getDetailsResult
类型,属于ISingleResult<getDetalsResult>
类型,因此将returnset
投射到getDetailsResult
会引发异常。
正如Albin Sunnabo所说,只要lala
分配returnset.First()
的价值就可以使用它,只要有结果。 First
扩展方法将返回存储过程的第一个结果。
getDetailsResult lala = returnset.First();
答案 1 :(得分:0)
存储过程后需要括号:blabla.Gesellschaft().