与Linq to SQL一起使用的通用类或方法与存储过程?

| 我是Linq的新手,以前一直在使用Ado.net类。 我想对存储过程使用Linq-to-SQL。您可以共享一个通用类的代码(或代码链接)来调用不同的存储过程吗?我不想为每个数据库实体创建单独的DAL类/方法。 谢谢     
已邀请:
        对于泛型,大概只能使用基本的CRUD操作。在这种情况下,您应该可以使用该表:
        DataContext ctx;
        var table = ctx.GetTable<Foo>();
        table.InsertOnSubmit(newObject);
        table.DeleteOnSubmit(oldObject);
(并且更新应该使用您为更新指定的SPROC对已更改的实体起作用)。 然后,ѭ1将自动使用正确的存储过程(您可以在设计器或DBML中指定用于插入,更新和删除的SPROC。棘手的是获取。那没有直接在ctx上公开...唯一的建议它们在数据上下文和反射中是基于名称的模式吗?所以也许用
GetFoo
方法获得
Foo
。 当然,另一种方法是实现多个通用接口,即
partial class MyDataContext : IFetch<Foo>, IFetch<Bar>
{
     Foo IFetch<Foo> Get(int key) { .. call get method on ctx ..}
     Bar IFetch<Bar> Get(int key) { .. call get method on ctx ..}
}
interface IFetch<T>
{
     T Get(int key);
}
(这扩展了数据上下文) 然后,您可以转换数据上下文:
var fetch = ctx as IFetch<T>();
return fetch.Get(key);
    
        如果您尝试将此类存储过程用于CRUD,则可以在edmx文件(保存DB实体的文件)中,右键单击要对其执行操作的类,然后选择“ 6”。在此处,您可以找到可以对此类对象执行的操作的列表。 附注:创建模型时,您还必须从数据库导入存储过程。     

要回复问题请先登录注册