【问题标题】:LINQ to SQL: using multiple data contexts easily with an interfaceLINQ to SQL:通过接口轻松使用多个数据上下文
【发布时间】:2012-02-17 17:40:12
【问题描述】:

我有一个程序使用 linq to sql 数据上下文访问许多类似的表。 linq to sql 表是否实现了通用接口?我想编写可以与任何类似表一起使用的方法,所以做类似的事情会很棒

Dim myTable as ILinqDataTable
If switch = "TableA" then myTable=myDataContext.TableA Else myTable=myDataContext.TableB

LINQ to SQL 可以做到这一点吗?

更新

Dim datasource as IlinqDatatable  // new interface that I implemented based on John's suggestion
Dim rec =  From l in datasource where l.exported=false select l //raises "Late binding operations cannot be converted to an expression tree." 

【问题讨论】:

    标签: .net vb.net linq linq-to-sql


    【解决方案1】:

    没有可以使用的内置界面。但是,您可以创建自己的。

    LINQ to SQL 生成的类是部分类。这允许您创建另一个类部分并指定该类实现一个接口。这样,您可以强制所有相似的表实现相同的接口。

    【讨论】:

    • 谢谢。因此,当我查看数据上下文中的部分类背后的代码时,我看到了像 Partial Class TableA 之类的东西...我应该将其更改为 Partial Class TableA Implements MyInterface 之类的东西?
    • 不,在一个单独的文件中,创建您自己的Partial Class TableA Implements MyInterface。部分类的思想是一个类可以由多个部分组成。
    • John,我尝试添加接口,但出现编译器错误“无法将后期绑定操作转换为表达式树。”也许如果在运行时分配对象类型(因为您正在从实现接口的对象进行查询),linq 无法将其转换为 sql 查询?将数据源调暗为 IlinqDatatable ; From l in datasource where l.exported=false select l //raises this error
    • 您在哪一行代码中遇到了该错误。我敢打赌,不是在声明中,而是在 LINQ 语句中。也许您使用的演员阵容不正确?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多