У меня есть веб-приложение 4.x MVC. До этого момента все мои отправления в базу данных выполнялись со встроенной безопасностью, и моя учетная запись является db_owner. Перенос приложения на разработчика. Мне было поручено создать разных пользователей для чтения и письма. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что метод dbContext.SaveChanges (), похоже, хочет и читать, и писать.
МОДЕЛЬ:
namespace App.Models
{
public class Model
{
[Key]
public string ID { get; set; }
public string Data { get; set; }
public string OtherData { get; set; }
public bool OtherData { get; set; }
}
public class DBContextRead : DbContext
{
public DbSet<Model> ReadModel { get; set; }
}
public class DBContextWrite : DbContext
{
public DbSet<Model> WriteModel { get; set; }
}
}
КОНТРОЛЛЕР:
private DBContextRead dbr = new DBContextRead();
private DBContextWrite dbw = new DBContextWrite();
public ActionResult Edit(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Model model = db.Model.Find(id);
if (model == null)
{
return HttpNotFound();
}
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "ID,Data,OtherData,Bool")] Model model)
{
if (ModelState.IsValid)
{
dbw.Entry(model).State = EntityState.Modified;
dbw.SaveChanges();
return RedirectToAction("Index");
}
return View(model);
}
И я полагаю, что представление не имеет значения, просто сгенерированный набор представлений с очень небольшим количеством изменений.
Всякий раз, когда вызывается метод редактирования, в dbw.SaveChanges () возникает ошибка, которая может 'не выполняет оператор SELECT из-за недостаточного разрешения, ну это писатель, так что это имеет смысл. К сожалению, когда я использую dbr.SaveChanges (), выдается другая ошибка, из-за которой у пользователя нет разрешения на выполнение команды UPDATE, это также имеет смысл, потому что это читатель.
Итак, вы, вероятно, теперь видите проблему, есть мысли о том, как это обойти?
Как мне вызвать метод SaveChanges (), используя разных пользователей БД для чтения и записи?