Data binding 如何将包含可写datagridview连接的linq到实体查询绑定?

Data binding 如何将包含可写datagridview连接的linq到实体查询绑定?,data-binding,datagridview,linq-to-entities,denormalization,Data Binding,Datagridview,Linq To Entities,Denormalization,这个问题,虽然,似乎不是一个重复。如果是,请澄清,我很乐意合并 我想使用包含连接的linq to entities查询绑定到可写DataGridView。模型如下: 非规范化DataGridView的绑定方式如下: 以下代码绑定,但会导致一个只读DataGridView,因为linq to entities查询返回一个匿名类型()。我陷入了僵局,因为我想我需要匿名类型来进行非规范化 var query = from t in iDictionaryContext.DisplayTexts

这个问题,虽然,似乎不是一个重复。如果是,请澄清,我很乐意合并

我想使用包含连接的linq to entities查询绑定到可写DataGridView。模型如下:

非规范化DataGridView的绑定方式如下:

以下代码绑定,但会导致一个只读DataGridView,因为linq to entities查询返回一个匿名类型()。我陷入了僵局,因为我想我需要匿名类型来进行非规范化

var query = from t in iDictionaryContext.DisplayTexts
        from l in iDictionaryContext.Languages
        where
            t.LanguageID == l.LanguageID
        select new
         {
             Key = t.DisplayKey,
             Text = t.DisplayText1,
             Language = l.LanguageName
         };
我还尝试了建议的解决方案,但它似乎适用于LINQtoSQL,而不适用于LINQtoEntities。将bindingsource.datasource设置为linq to entities查询时,会引发一个异常,读取“linq to entities中仅支持无参数构造函数和初始值设定项”

谢谢你的建议


Tim

就这样定义演示类型吧。您不必在构造函数中传递对象:

public class LanguageDisplayTextPresentation 
{
    public int Key { get; set; }
    public string Text { get; set; }
    public string Language { get; set; }
}
然后

var query = from t in iDictionaryContext.DisplayTexts
    from l in iDictionaryContext.Languages
    where
        t.LanguageID == l.LanguageID
    select new LanguageDisplayTextPresentation 
    {
        Key = t.DisplayKey,
        Text = t.DisplayText1,
        Language = l.LanguageName
    };

虽然这将使DataGridView可编辑,但不会更新实体,是吗?添加/删除行怎么样?