使用Linq2Sql和Sprocs时请参考其他实体

时间:2010-01-08 11:32:44

标签: .net linq linq-to-sql

我们正在评估内部应用程序的Linq2Sql,我们的开发指南意味着我们必须始终对所有CRUD操作使用存储过程,从各种博客我已经将一个应用程序放在一起,完成了我们想要的任务。

但是,我想做的是当我们在两个实体之间建立关系时,可以自动实现这种关系。

例如,如果我有一个Person对象的实例,我希望能够说

var absenceCount = persons.Absence.Count()

但是因为我们对Absence表没有select权限,所以我们得到一个Sql异常。

到底有没有?

2 个答案:

答案 0 :(得分:0)

通过对所有数据库操作使用存储过程,您将失去ORM(如Linq-To-SQL)和使用LINQ查询的大部分好处。例如,通过使用存储过程来检索所有数据,您将无法对所有查询进行强类型检查。

当然,您仍然可以将L2S与存储过程一起使用,但如果您的所有查询操作都必须通过存储过程完成,我真的没有看到它的重点。

要回答第二个问题,如果您没有权限对表进行选择,您如何期望L2S能够填充缺勤表?如果L2S以某种方式能够做到这一点,你所建立的安全性的重点是什么?

兰迪

答案 1 :(得分:0)

凭借纯粹的机会,我偶然发现了一些博客文章证明这是可行的,我已经对它进行了测试并且它可以实现一种享受

基本上有一个名为Load调用你的存储过程中的方法添加到你的DataContext类中将允许它工作

链接此处的示例

Damien Guard

Msdn