我经常用
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;
PS:我首先添加了我如何尝试克服这个问题(没有成功),但后来我删除了它(我在一个多小时内发布了这篇文章!),因为它让问题变得太吵了。起初看起来很容易,直到你(或者只有我?)尝试解决它。我标记它dbml
是因为特定于DataContext
事物:你不能使用单例,等等。