我觉得我在圈子里跑来跑去.我似乎无法决定使用LINQ to SQL正确的存储库模式.如果您熟悉Rob Conery的 MVC店面,您将看到他的实现将LINQ生成的模型与另一个类包装在一起,并将LINQ生成的模型简单地视为数据传输对象(DTO).它看起来像这样:
//Custom wrapper class.
namespace Data
{
public class Customer
{
public int Id {get;set;}
public string Name {get;set;}
public IList<Address> Addresses {get;set;}
}
}
//Linq-Generated Class - severly abbreviated
namespace SqlRepository
{
public class Customer
{
public int Id {get;set;}
public string Name {get;set;}
public EntitySet<Address> {get;set;}
}
}
//Customer Repository
namespace SqlRepository
{
public class UserRepository : IUserRepository
{
private _db = new DB(); //This is the Linq-To-Sql …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个Repository模式实现示例/资源,遵循我的ASP.net MVC应用程序的域驱动设计原则.有没有人有一个可以共享的好例子或学习资源?
对于我的实习,我正在创建一个与后台数据库进行通信的程序.该程序以MVC(模型 - 视图 - 控制器)方式分层.
对于View我想通过我称为DataAccesLayer(DAL)的东西来访问数据.因为该视图具有最少的知识,所以我希望它为我想要调用的查询传递ID.呼叫将在DAL内完成.然后使用ID我想要一个包含查询的类来返回查询,然后在DAL中执行它.用于可视化的图片.

我现在遇到的问题是如何在我的Read函数中执行查询.DAL的代码如下:
public class DataAccesLayer
{
private Queries queryloader;
private RoadsoftDigitacV8DataContext db;
public DataAccesLayer()
{
queryloader = new Queries();
db = new RoadsoftDigitacV8DataContext();
}
public List Read(int ID)
{
IQueryable query;
query = queryloader.GetQuery(ID);
return query.ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
Queries类的代码:
public class Queries
{
private Dictionary<int, IQueryable object> queryDict;
private ErrorLoggerWinLog logger;
public Queries()
{
logger = ErrorLoggerWinLog.Instance();
queryDict = new Dictionary<int, IQueryable object>();
queryDict.Add(1, from d in db.Drivers
select d);
}
public object GetQuery(int ID) …Run Code Online (Sandbox Code Playgroud)