C# 如何从静态类引用Linq2SQL类
我有一个奇怪的问题,我有一个这样的静态类C# 如何从静态类引用Linq2SQL类,c#,asp.net,C#,Asp.net,我有一个奇怪的问题,我有一个这样的静态类 public static class BlogDataAccess { private static Blog _Blg; public static Blog Blg { get { _Blg = new Blog (); return _Blog ; } } } 然后在我的页面中,我执行以下操作 var DataC
public static class BlogDataAccess
{
private static Blog _Blg;
public static Blog Blg
{
get
{
_Blg = new Blog ();
return _Blog ;
}
}
}
然后在我的页面中,我执行以下操作
var DataContext= new DataClasses();
BlogDataAccess.Blg.ArticleTitle ="Title";
DataContext.Blog.InsertOnSubmit(BlogDataAccess.Blg);
DataContext.SubmitChanges();
将插入记录,但ArticleTitle字段的值为空。每次访问
BlogDataAccess.Blg
时,您都在创建一个新对象。我认为您的意思是像这样实现延迟实例化:
public static class BlogDataAccess
{
private static Blog _Blg;
public static Blog Blg
{
get
{
if(_Blg == null)
_Blg = new Blog();
return _Blg;
}
}
}
每次访问
BlogDataAccess.Blg
,您都在创建一个新对象。我认为您的意思是像这样实现延迟实例化:
public static class BlogDataAccess
{
private static Blog _Blg;
public static Blog Blg
{
get
{
if(_Blg == null)
_Blg = new Blog();
return _Blg;
}
}
}
哇,哇,伙计,你帮我节省了几个小时,它真的很有魅力,非常感谢:)这项技术有什么不足之处吗?好吧,它假设你需要并且只有一个对象实例可用。延迟实例化的唯一缺点是对象的构造需要很长时间。第一次访问时,您可能会看到一些延迟。因此,正如您所看到的,这是一个博客模块,可能有3个用户正在添加、编辑文章,所以这会造成问题吗?不,不,应该可以。当然,除非你的Blog()构造函数试图将整个内容从数据库读入内存或其他什么。没有人,就像我告诉你的那样,我会给用户控制面板来管理博客条目,然后使用db在前端显示文章。再次感谢:)哇,哇,伙计,你帮我节省了几个小时,效果很好,非常感谢:)这项技术有什么不足之处吗?好吧,它假设你只需要一个可用对象的实例。延迟实例化的唯一缺点是对象的构造需要很长时间。第一次访问时,您可能会看到一些延迟。因此,正如您所看到的,这是一个博客模块,可能有3个用户正在添加、编辑文章,所以这会造成问题吗?不,不,应该可以。当然,除非你的Blog()构造函数试图将整个内容从数据库读入内存或其他什么。没有人,就像我告诉你的那样,我会给用户控制面板来管理博客条目,然后使用db在前端显示文章。真的再次感谢:)