关于将实体保存到数据库的问题
Question regarding saving entity to database
假设我有这样的方法:
public string SetSessionData(dynamic data, string token)
{
var request = (data as JObject).ToObject<SetRunSessionDataRequest>();
var session = runSessionRepository.GetRunSessionWithToken(token);
if (!string.IsNullOrEmpty(request.Id))
session.Id = request.Id;
然后我想保存存储库中的更改class,这是怎么做到的?
这行得通吗?
public string SetSessionData(dynamic data, string token)
{
var request = (data as JObject).ToObject<SetRunSessionDataRequest>();
var session = runSessionRepository.GetRunSessionWithToken(token);
if (!string.IsNullOrEmpty(request.Id))
session.Id = request.Id;
runSessionRepository.saveSession(session);
存储库 class 中的 saveSession 方法如下所示:
public void saveSession(session){
Session _session = session;
db.saveChanges();
}
所以我真正想问的是如何在存储库中进行保存 class 因为我在服务中没有数据库实例 class 我什至需要发送会话变量?感觉毫无意义,但如果我不这样做,它怎么知道要保存什么?它甚至可以节省任何东西吗?
我假设 db
是您存储库中的 DbContext
,要保存您的 Session
对象,您需要在调用 db.SaveChanges();
之前调用 db.Update(session);
以便 EF Core 可以跟踪更改并在调用 SaveChanges 时保存它们。
例如:
public void SaveSession(session){
db.Update(session);
db.SaveChanges();
}
This article 可能有助于解释您的代码使用的模式以及您想要使用它的原因。
假设我有这样的方法:
public string SetSessionData(dynamic data, string token)
{
var request = (data as JObject).ToObject<SetRunSessionDataRequest>();
var session = runSessionRepository.GetRunSessionWithToken(token);
if (!string.IsNullOrEmpty(request.Id))
session.Id = request.Id;
然后我想保存存储库中的更改class,这是怎么做到的? 这行得通吗?
public string SetSessionData(dynamic data, string token)
{
var request = (data as JObject).ToObject<SetRunSessionDataRequest>();
var session = runSessionRepository.GetRunSessionWithToken(token);
if (!string.IsNullOrEmpty(request.Id))
session.Id = request.Id;
runSessionRepository.saveSession(session);
存储库 class 中的 saveSession 方法如下所示:
public void saveSession(session){
Session _session = session;
db.saveChanges();
}
所以我真正想问的是如何在存储库中进行保存 class 因为我在服务中没有数据库实例 class 我什至需要发送会话变量?感觉毫无意义,但如果我不这样做,它怎么知道要保存什么?它甚至可以节省任何东西吗?
我假设 db
是您存储库中的 DbContext
,要保存您的 Session
对象,您需要在调用 db.SaveChanges();
之前调用 db.Update(session);
以便 EF Core 可以跟踪更改并在调用 SaveChanges 时保存它们。
例如:
public void SaveSession(session){
db.Update(session);
db.SaveChanges();
}
This article 可能有助于解释您的代码使用的模式以及您想要使用它的原因。