【发布时间】:2015-08-01 13:03:56
【问题描述】:
我正在尝试使用存储库模式制作一些东西,我制作了 3 层 winUI、dll 和存储库,它们都引用了实体框架,但我的基础存储库在这里不起作用是下面的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using KuzeyYeli.ORM.Models;
namespace KuzeyYeli.Repository
{
public class RepositoryBase<T> where T:class
{
private static NORTHWNDContext context;
//singelton pattern
public NORTHWNDContext Context
{
get {
if (context==null)
context=new NORTHWNDContext();
return context;
}
set { context = value;}
}
public IList<T> Listele()
{
return Context.Set<T>.ToList();
}
}
}
Set 给了我错误,例如“不包含'set' 的定义并且没有扩展名”,顺便说一下,当我写“上下文”时。我看不到 EF 制作的课程,我真的需要知道,请帮助
【问题讨论】:
-
不肯定它会修复你的错误,但你可能想把
static从你的成员变量中去掉。将其标记为静态使其对于从您的基类继承的所有实例都是全局的,并且它将在所有请求中持续存在。不是你想要的。 -
我知道,但这就是单例模式的要点,它应该在我编写“上下文”之后立即向我显示 NORTHWNDContext(这是我的数据库类)中的类。在 Listele 方法中
-
可能是单例模式的重点,但是单例模式在存储库模式中没有业务
-
您可能想查看此问题的答案:stackoverflow.com/questions/31646525/…
标签: c# entity-framework repository-pattern