Как назвать идентификатор данных, которые вставляются в базу данных? - PullRequest
0 голосов
/ 19 октября 2019

T сущность. Я использую шаблон синглтона для контекста базы данных.

   private DbSet<T> _objectSet;
    public Repository()
    {
        _objectSet = db.Set<T>();
    }
    public T Find(Expression<Func<T, bool>> query)
    {
        return _objectSet.FirstOrDefault(query);
    }
    public int Insert(T obj)
    {
        _objectSet.Add(obj);
        return Save();
    }
    public int Save()
    {
        return db.SaveChanges();
    }

Вставка прошла успешно, но вставленный объект вернулся как ноль. Как я могу решить эту проблему? Спасибо за помощь.

    public BasicResult CreateTask(MTask task)
    {
        BasicResult result = new BasicResult();
        DateTime now = DateTime.Now;
        task.ModifiedOn = now;
        task.CreateOn = now;
        task.IsCompleted = false;
        int res=repoTask.Insert(task);
        if (res > 0)
        {
            result.Status = true;
            result.Message = "Successfully added.";
            MTask inserted=repoTask.Find(x => x.Description == task.Description && x.CreateOn == task.CreateOn);
            result.Id = inserted.Id;
            return result;
        }
        result.Status = false;
        result.Message = "An unexpected error occurred.";
        return result;
    }

1 Ответ

0 голосов
/ 20 октября 2019
   public int Insert(T obj)
    {
        _objectSet.Add(obj);
         Save();
         return obj;
    }
    public int Save()
    {
        return db.SaveChanges();
    }

и вы можете легко получить идентификатор из объекта, возвращаемого вашим репозиторием. Insert (T obj)

var savedObject = repoObject.Insert(task);
var id = savedObject.Id;

, вызывая вызов метода вставки ur SaveChanges лишит возможности выполнять транснациональную вставку/ update, вы должны прочитать больше о единице работы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...