LinqToSQL中DatabaseAttribute的重点是什么?

时间:2009-03-24 14:57:12

标签: .net linq-to-sql

LinqToSQL Context类默认使用DatabaseAttribute注释。但它是可选的。在任何情况下,我都可以想到你会使用连接字符串指向数据库,所以它的原因是什么。 现在,我显然已经阅读了文档。如果您希望从连接字符串中省略它,则使用它来指定默认数据库。但... 为什么哦,你为什么要那样做?有什么建议吗?

2 个答案:

答案 0 :(得分:0)

嗯......好问题。我想不出这个用得好。如果你想从一个连接跨越多个数据库(不同的数据上下文)(这首先不是一个好主意),它将仍然非常无用,因为它将被修复为数据上下文的所有实例。

在我能想到的每一个明智的案例中,连接定义了数据库,或者它是一个非问题(独立的db文件等)。我想知道它是不是只是放在那里因为它(数据库名称的知识)存在,所以它可以以相同的方式获得(理论上)......

答案 1 :(得分:0)

很难知道当时设计团队的想法。

我的猜测是允许在具有多个数据库的应用程序中使用默认常规连接字符串的可选配置。内置不支持,所以我对此表示怀疑。这将允许类似的东西:

<add name="GeneralConnection" ... />
<add name="GeneralConnection.SomeDataContext" ... />

所有数据上下文都将配置为指向GeneralConnection。检索数据上下文实例的一些额外代码将检查GeneralConnection.ThatDataContext是否存在,并在这种情况下使用带有连接字符串的构造函数。

这只是猜测。我没有类似的需求,我认为我不会依赖这样的东西。