相关疑难解决方法(0)

检查实体框架中是否存在对象的最佳方法?

从性能的角度来看,检查数据库中是否存在对象的最佳方法是什么?我正在使用Entity Framework 1.0(ASP.NET 3.5 SP1).

linq-to-entities entity-framework exists

108
推荐指数
3
解决办法
13万
查看次数

EntityFramework按ID获取对象?

Generics是否可以在不知道类型的情况下从我的EntityFramework中获取对象?

我正在考虑以下方面的事情:

public T GetObjectByID<T>(int id)
{
   return (from i in myDatabase.T where i.ID == id select i);
}
Run Code Online (Sandbox Code Playgroud)

那可行吗?我可以使用Reflection以某种方式将T.GetType().Name其用于表中吗?

编辑
另一个问题是,并非所有可用的表都使用"ID"作为其唯一的列名.

c# linq asp.net reflection entity-framework

26
推荐指数
4
解决办法
7万
查看次数

DbContext的通用合并:如何检查实体是否已全部准备好附加?

给出以下代码:

    void MergeDbContext(DbContext aSourceDbContext, DbContext aDestinationDbContext)
    {
        var sourceEntities = aSourceDbContext.ChangeTracker.Entries().ToList();
        foreach (DbEntityEntry entry in sourceEntities)
        {
            object entity = entry.Entity;
            entry.State = EntityState.Detached;

            // check if entity is all ready in aDestinationDbContext if not attach
            bool isAttached = false;// TODO I don't know how to check if it is all ready attched.
            if (!isAttached)
            {
                aDestinationDbContext.Set(entity.GetType()).Attach(entity);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我如何一般性地确定实体是否存在于上下文中.

dbcontext entity-framework-6

9
推荐指数
1
解决办法
810
查看次数

实体框架:更新实体或添加(如果它不存在)

我有一个场景,我必须更新一个实体,如果它存在或添加一个新实体,如果它不存在.

我想为此执行一个单独的方法(如果它只是一次访问服务器就会很棒).

EF中有类似的东西吗?

现在我的代码看起来像这样:

var entity = db.Entities.FirstOrDefault(e => e.Id == myId);
if (entity == null)
{
    entity = db.Entities.CreateObject();
    entity.Id = myId;
}

entity.Value = "my modified value";

db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

但我想避免第一个查询,如下所示:

var entity = new Entity();
entity.Id = myId;
entity.Value = "my modified value";
db.AddOrAttach(entity);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

有类似的东西吗?或者我必须执行第一个查询,不管是什么?

谢谢

sql optimization entity-framework-4 sql-update

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

检查EF中的通用方法是否存在记录

我正在开发一个Asp.Net MVC应用程序,我正在尝试编写一个通用方法来检查DB中是否存在实体,或者使用传递的entityId来实现此方法.如下所示:

public bool CheckIfUserExistsByUserId(int userId)
{
    return _userRepository.DbSet().Any(u => u.Id == userId);
}
Run Code Online (Sandbox Code Playgroud)

但是此方法仅检查_userRepository并接受整数作为entityId.

我的问题是我想把这个泛型方法作为我的BaseService中的一般方法,就像我在下面写的其他常规方法一样:

public class BaseService<TModel> : IBaseService<TModel> where TModel : class
{
    private readonly IUnitOfWork _unitOfWork;
    private readonly IBaseRepository<TModel> _baseRepository; 

    public BaseService(IUnitOfWork unitOfWork, IBaseRepository<TModel> baseRepository)
    {
        _unitOfWork = unitOfWork;
        _baseRepository = baseRepository;
    }

    public BaseService(IUnitOfWork unitOfWork)
    {
        _unitOfWork = unitOfWork;
    }

    public void Add(TModel entity)
    {
        this._baseRepository.Add(entity);
    }

    public void Remove(TModel entity)
    {
        this._baseRepository.Remove(entity);
    }

    /// <summary>
    /// Remove All Provided Items At Once …
Run Code Online (Sandbox Code Playgroud)

c# asp.net generics asp.net-mvc entity-framework

3
推荐指数
1
解决办法
1610
查看次数