我正在创建非常瘦的DTO,我想知道是否有一种方法可以自己共享Linq-to SQL实体。我试过了。我在局部类中创建了一个元数据类,并设置了键注释。然后我尝试在我的RIA服务中公开查询中的实体。虽然在生成的代码中抱怨System.Data.Linq
,但我仍然遇到错误。这是有道理的,但有没有办法做到这一点,而不依赖于Silverlight中不可用的其他库?
注意,我没有使用实体框架,因为它对我当前的项目来说很重要。我宁愿使用瘦DTO而不是为这个项目引入EF。
编辑:
我的问题更普遍:LINQ to SQL实体可以直接用作RIA服务DTO并由服务共享吗?
答案 0 :(得分:0)
简短回答:不采取其他措施否。
答案很长:
并非所有API都由Silverlight运行时表示的.NET Framework版本支持。有关支持者API的完整列表,请参见此处:
如果您尝试使用任何依赖于不受支持的API的DLL,那么您将遇到遇到的问题。您无法在原始状态下通过RIA线推送LINQ to SQL类。
唯一可行的方法是,如果您的LINQ to SQL层是针对映射到DataContext的POCO类生成的,例如:http://www.thinqlinq.com/default/LINQ-to-SQL-support-for-POCO.aspx