的LINQ to SQL,匿名类型是只读的
我使用LINQ to SQL和DataGridViews创建数据库的可编辑的用户界面。
我的问题是,当从数据库中获取结果时,我必须翻译列名,因为尽管数据库中的所有名称都是英文的(Visual Studio类设计器支持的唯一语言),但我必须在不同的语言......的LINQ to SQL,匿名类型是只读的
所以我想过使用匿名类型:
c_dgvShops.DataSource = (from Shop s in DataContext.Shops select new
{
Azonosito = s.Shop_ID,
Nev = s.Name,
Megye = s.County,
Iranyitoszam = s.Zipcode,
Cim = s.Address,
Latogatasok_szama = s.Visits.Count
});
(请注意,匿名类型的属性名称是匈牙利的语言[我要显示],从翻译英语。)
这导致数据GridViews是只读的。
我做了一些谷歌搜索,发现这一点: http://blogs.msdn.com/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx。
根据这篇文章,我创建了一个名为“箭”(匈牙利等效店)新类和与翻译的属性名称填写,所以查询变成了:
c_dgvShops.DataSource = (from Shop s in DataContext.Shops select new Bolt
{
Azonosito = s.Shop_ID,
Nev = s.Name,
Megye = s.County,
Iranyitoszam = s.Zipcode,
Cim = s.Address,
Latogatasok_szama = s.Visits.Count()
});
尽管这不是完全清楚,我,这将如何编辑DataGridView中显示的数据,我试过了,并且发生了异常:
NotSupportedException:不允许在查询中显式构造实体类型'DataTest_L2SQL.Bolt'。
那么什么是这样做的正确方法是什么?如何显示别名列名,但仍然保持数据可编辑?
非常感谢您提前!
回答:
你应该手动定义DataGrid列(这将让你的标题设置为你想要的任何东西,以及自定义尺寸和显示格式),不依赖于数据网格通过数据源来发现你的列 - 此功能仅用于快速和肮脏的设置。
回答:
你要了解它的错误的方式。您不应该为本地化使用不同的类属性名称。
请按照此guide to localize your page。指定的HeaderText为列,改变形式语言,然后再指定语言的HeaderText。
以上是 的LINQ to SQL,匿名类型是只读的 的全部内容, 来源链接: utcz.com/qa/263155.html