gpt4 book ai didi

asp.net-mvc - 我的 CRUD LINQ 代码在哪里? ASP.NET MVC

转载 作者:行者123 更新时间:2023-12-04 18:15:32 25 4
gpt4 key购买 nike

我目前正在一个项目中使用 ASP.NET MVC 框架(几乎是我的第一次)

我使用 Linq2SQL 作为我的数据模型..

我应该在哪里有这种代码:

var entries = from e in db.sometable select e;

我目前在 Controller 中有这种代码,并将我得到的数据传递到 View 中..

这个可以吗?

如果不是,我如何让我的 linq2sql 数据模型包含这种代码?

谢谢

丹尼尔

最佳答案

要添加@Poco 所说的内容,这是一个示例:

Foo.Common.Repositories (在 Foo.Common 项目内):

public interface IRepository<T>
{
IEnumerable<T> GetAll();
void Update(T entity);
void Add(T entity);
void Delete(T entity);
void Save();
}

public interface IUserRepository : IRepository<User>
{
void GetByCredentials(string username, string password);
}

内幕 Foo.Data.Repositories (在 Foo.Data 项目内):
public class UserRepository
{
// ... other methods/properties snipped.

public IEnumerable<User> GetAll()
{
// Where this.Users would be L2Sql or Code-First... or some other ORM.
return from u in this.Users orderby u.Name select u;
}
}

然后在你的实际 Foo.Web 中:
public class UserController : Controller
{
private readonly IUserRepository userRepository;

public UserController(IUserRepository userRepository)
{
this.userRepository = userRepository;
}

[AcceptVerbs(HttpVerbs.Get)]
public ViewResult List()
{
var users = this.userRepository.GetAll();
return this.View(users);
}
}

在您的 Global.asax 内你需要 Ninject 或其他一些 IoC 容器来解析 IUserRepository :
public static void RegisterServices(IKernel kernel)
{
kernel.Bind<IUserRepository>().To<UserRepository>();
}

protected void Application_Start()
{
var kernel = new StandardKernel();

AreaRegistration.RegisterAllAreas();

MvcApplication.RegisterGlobalFilters(GlobalFilters.Filters);
MvcApplication.RegisterRoutes(RouteTable.Routes);
MvcApplication.RegisterServices(kernel);

// I'm using MVC3 here:
DependencyResolver.SetResolver(new NinjectResolver(kernel));
}

关于asp.net-mvc - 我的 CRUD LINQ 代码在哪里? ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com