【发布时间】:2015-02-02 16:39:33
【问题描述】:
我经常用
using (var context = new SomeDataContext(SomeDataContext.ConnectionString))
{
...
}
在哪里
abstract class DataContextBase: DataContext { ... }
partial class SomeDataContext: DataContextBase
{
public const string DatabaseFile = "blablabla.mdf";
public static readonly string ConnectionString = string.Format(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename={0};Integrated Security=True", DatabaseFile);
}
问题:是否可以隐藏 SomeDataContext 实例和 ConnectionString 的创建到 DataContextBase 深处?
我只想在继承的类中定义文件名
partial class SomeDataContext: DataContextBase
{
public const string DatabaseFile = "blablabla.mdf";
}
并且能够创建这样的实例
var context = SomeDataContext.PropertyInBaseClassWhichCreatesInstanceOfInheritedClass;
P.S.:我首先添加了我是如何尝试克服问题的(没有成功),但后来我删除了它(我在一个小时内发布了这篇文章!),因为它使问题变得太吵了。起初看起来很容易,直到你(或者只有我?)尝试解决它。我将其标记为dbml,因为特定于DataContext 的东西:你不能使用单例等等。
【问题讨论】:
-
你能控制这两个类,还是它们是生成的?
-
@BradleyDotNET,是的,但是
partial一个部分(它是自动生成的)=P
标签: c# architecture dbml