直接在LINQ查询中转换

时间:2011-12-07 20:01:59

标签: linq entity-framework

我使用Entity Framework,我有一个像这样的LINQ查询:

var foo = from ee in context.Table select new {id = ee.id, price = ee.price}.ToList();

其中price是十进制的(SqlServer中的smallmoney)。 现在我将它绑定到datagridview     mydgv.DataSource = foo; 但首先,我想将所有小数转换为字符串,以便从值中删除零(例如,现在它是26.0000,我希望它是26.00)。我怎样才能做到这一点? 类似的东西:

bla.ForEach( x => x.price.ToString().Substring(0,3))

无效。

2 个答案:

答案 0 :(得分:2)

var q = foo.Select(x => new { id = x.id, price = x.price.ToString("N2") } );

但您可以将datagridview中的列上的格式字符串设置为“N2”并直接绑定到原始数​​据源。类似的东西:

dgv.Columns[0].DefaultCellStyle.Format = "N2";

答案 1 :(得分:0)

不确定EF是否支持它,但请尝试

new { ee.id, price = ee.price.ToString("f2") }