相关疑难解决方法(0)

在存储库中使用Include()方法

我在EF 5中有以下内容:

var a = context.Posts.Include(x => x.Pack).Select(x => x.Pack.Id).ToList();
Run Code Online (Sandbox Code Playgroud)

这有效.然后我尝试在我的通用存储库中复制它:

public IQueryable<T> Include<T>(Expression<Func<T, Boolean>> criteria) where T : class
{
    return _context.Set<T>().Include(criteria);
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我无法执行以下操作:

var b = repository.Include<Post>(x => x.Pack).Select(x => x.Pack.Id).ToList();
Run Code Online (Sandbox Code Playgroud)

我收到错误:

无法将类型'Data.Entities.Pack'隐式转换为'bool'

我怎么解决这个问题?

我应该在Include()方法中更改什么?

.net c# entity-framework compiler-errors

10
推荐指数
2
解决办法
9451
查看次数

MVC 5更新数据库中一行的多个字段

我正在练习MVC 5,在我的应用程序中,我有一个控制器方法,应该更新给定用户配置文件的地址信息.

我通过使用上下文对象访问数据库来做到这一点,我首先想到的是将数据库行复制到对象,进行更改,然后使用该AddOrUpdate()方法将其放回.但是,我只看到一种Add()方法.

所以我做了以下事情:

public ActionResult EditBillingDetails(EditBillingDetailsViewModel model)
{
    if (ModelState.IsValid)
    {
        string id = User.Identity.GetUserId();
        ApplicationDbContext db = new ApplicationDbContext();

        db.Users.Single(u => u.Id == id).FirstName = model.FirstName;
        db.Users.Single(u => u.Id == id).LastName = model.LastName;
        db.Users.Single(u => u.Id == id).Email = model.Email;
        db.Users.Single(u => u.Id == id).Address = model.Address;
        db.Users.Single(u => u.Id == id).City = model.City;
        db.Users.Single(u => u.Id == id).ZIP = model.ZIP;
        db.Users.Single(u => u.Id == id).Country = model.Country;

        db.SaveChanges();

        return RedirectToAction("Manage", new { Message …
Run Code Online (Sandbox Code Playgroud)

database asp.net-mvc-5

5
推荐指数
1
解决办法
7537
查看次数