Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在.NET Web表单应用程序中管理应用程序范围的静态模型类_C#_.net_Sql_Web Services_Webforms - Fatal编程技术网

C# 如何在.NET Web表单应用程序中管理应用程序范围的静态模型类

C# 如何在.NET Web表单应用程序中管理应用程序范围的静态模型类,c#,.net,sql,web-services,webforms,C#,.net,Sql,Web Services,Webforms,我在DB里有两张桌子 表名问题 栏目: _id,QuizId,QuestionText 和第二个表的答案 栏目: _id、QuesId、QuizId、AnswerText、IsRight 现在我已经通过数据访问层填充了这样的模型 Class QuestionAnswers { int _id {get;set;} string QuestionText {get;set;} List<Answer> AnswerList { get; set;} } 现在,由于

我在DB里有两张桌子

表名问题

栏目: _id,QuizId,QuestionText

和第二个表的答案

栏目: _id、QuesId、QuizId、AnswerText、IsRight

现在我已经通过数据访问层填充了这样的模型

Class QuestionAnswers
{

   int _id {get;set;}
   string QuestionText {get;set;}
   List<Answer> AnswerList { get; set;}
}
现在,由于一组的学生有相同的问题答案集,因此通过我的数据访问层,我将仅在第一次选择QA集,然后我希望将这些现有QA呈现给所有其他后续请求

要实现这一点,我必须创建静态列表QAList。所以如何管理这个QAList对象,因为我想从Web服务项目以及Web表单项目访问这个对象,因为我正在设计一个通用模型和通用BusinessLogic类库项目

我只想知道如何管理此对象,以便可以从同一解决方案中的多个项目访问它,以及如何管理此对象,以便登录我的web应用程序的所有用户都可以访问它(可以通过使类为静态来实现)

可从同一解决方案中的多个项目访问

转到要使用这些类的项目,并向包含这些类的项目添加项目引用

  • 右键单击引用
  • 单击添加引用
  • 更改为“项目”选项卡
  • 选择您的模型项目

所有登录我的web应用程序的用户都可以访问

不,我拒绝。您还没有准备好处理该共享列表实例的多线程问题。我的建议是避免使用static关键字


简要说明。这是一个静态属性

public static List<Animal> Zoo {get;set;}
ThreadA现在得到一个异常,即在修改列表时如何不能枚举列表

此外,了解(尤其是计算)和(当您第二次尝试解决竞争条件时会发生什么)

可从同一解决方案中的多个项目访问

转到要使用这些类的项目,并向包含这些类的项目添加项目引用

  • 右键单击引用
  • 单击添加引用
  • 更改为“项目”选项卡
  • 选择您的模型项目

所有登录我的web应用程序的用户都可以访问

不,我拒绝。您还没有准备好处理该共享列表实例的多线程问题。我的建议是避免使用static关键字


简要说明。这是一个静态属性

public static List<Animal> Zoo {get;set;}
ThreadA现在得到一个异常,即在修改列表时如何不能枚举列表



此外,了解(尤其是计算)和(当您第二次尝试解决竞赛条件时会发生什么情况).

这难道不是数据库的用途吗?我不想重复连接数据库来访问同一组数据。这就是为什么我希望获取数据并将其存储在某个共享模型中,然后我可以从该模型中向每个用户呈现数据。享受重新发明轮子的乐趣。因此,我想说,对于每个请求,我都会创建连接,打开连接,执行存储过程,然后填充模型,然后我的ASP.net工作进程将呈现html。为什么我要在没有必要的情况下重复这些步骤呢?欢迎来到世界上每一个数据驱动的网站是如何工作的。缓存很重要,但您似乎在谈论如何在单个实例中保持虚拟数据库可供多个用户/应用程序访问。这正是网络感知数据库为您设计的功能。这难道不是数据库的用途吗?我不想重复连接数据库来访问同一组数据。这就是为什么我希望获取数据并将其存储在某个共享模型中,然后我可以从那里向每个用户呈现数据。祝您有重新发明轮子的乐趣。所以您想说的是,对于每个请求,我将创建连接,打开连接,执行存储过程,然后填充模型,然后我的ASP.net工作进程将呈现html。为什么我要在没有必要的情况下重复这些步骤呢?欢迎来到世界上每一个数据驱动的网站是如何工作的。缓存很重要,但您似乎在谈论如何在单个实例中保持虚拟数据库可供多个用户/应用程序访问。这正是网络感知数据库为您设计的功能。您能否简单解释一下,如果尝试实现这一功能,我会面临什么类型的多线程问题。我怎样才能使它线程安全。因为我有足够的时间,所以我想这样做。谢谢david告诉我添加参考资料的过程。我知道,甚至任何5天的.NET开发人员都知道。基本上我想知道,一旦我添加了引用,BLL和模型的.dll文件将被复制到wen forms项目和WCf项目,我必须在不同的物理服务器上部署服务项目和web表单项目。那么,一个BLL创建的静态(共享)对象如何可以通过另一个BLL访问呢?这就是我想在您的第一个响应中了解的。“该对象如何位于两个AppDomain中?”您在服务中拥有该对象,并且该服务向客户端提供对该对象的访问。“任何5天的.NET开发人员都知道这一点”,我记得有一次我不知道。它确实准确地回答了您的问题。您能否简单地解释一下,如果尝试实现这一点,我会面临什么类型的多线程问题。我怎样才能使它线程安全。因为我有足够的时间,所以我想这样做。谢谢david告诉我添加参考资料的过程。我知道,甚至任何5天的.NET开发人员都知道。基本上我想知道,一旦我添加了引用,BLL和模型的.dll文件将被复制到wen forms项目和WCf项目,我必须在不同的物理服务器上部署服务项目和web表单项目。那么,这个静态(共享)对象如何实现呢
List<Bear> funnyBears = StaticClassName.Zoo.OfType<Bear>().Where(bear => bear.IsFunny).ToList();
StaticClassName.Zoo.Add(new Zebra());