的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

回到顶部