在插入之前更改主键的值
Change value of primary key before Inserting
我有两个 table component
和 page
有多对多关系,我想在插入之前更改组件的 Id
table 像这样 records+1
还有额外的字符串。我的问题是创建项目组件效果很好,但它不会在连接中创建记录 table componentPage
.
public virtual async Task<T> Add(T obj, string createdBy= null, bool IsAutogeneratedId = true)
{
obj.CreatedDate = DateTime.UtcNow;
obj.CreatedBy = createdBy;
// Just for creating page, component and componentsUserRoles
if (!IsAutogeneratedId)
{
var lastId = entities.Count();
var appId = createdBy.Split("=");
var newId = $"{appId[0].Replace(": ", "")}_{lastId + 1}";
obj.Id = newId;
}
_context.Attach(obj).State = EntityState.Added;
// await entities.AddAsync(obj);
await _context.SaveChangesAsync();
return obj;
}
感谢您的帮助!
我忘记附上我要创建的新项目!
public virtual async Task<T> Add(T obj, string createdBy= null, bool IsAutogeneratedId = true)
{
obj.CreatedDate = DateTime.UtcNow;
obj.CreatedBy = createdBy;
if (_context.Entry(obj).State == EntityState.Detached)
{
entities.Attach(obj);
}
if (!IsAutogeneratedId)
{
var lastId = entities.Count();
var appId = createdBy.Split("=");
var newId = $"{appId[0].Replace(": ", "")}_{lastId + 1}";
obj.Id = newId;
}
_context.Attach(obj).State = EntityState.Added;
await _context.SaveChangesAsync();
return obj;
}
我有两个 table component
和 page
有多对多关系,我想在插入之前更改组件的 Id
table 像这样 records+1
还有额外的字符串。我的问题是创建项目组件效果很好,但它不会在连接中创建记录 table componentPage
.
public virtual async Task<T> Add(T obj, string createdBy= null, bool IsAutogeneratedId = true)
{
obj.CreatedDate = DateTime.UtcNow;
obj.CreatedBy = createdBy;
// Just for creating page, component and componentsUserRoles
if (!IsAutogeneratedId)
{
var lastId = entities.Count();
var appId = createdBy.Split("=");
var newId = $"{appId[0].Replace(": ", "")}_{lastId + 1}";
obj.Id = newId;
}
_context.Attach(obj).State = EntityState.Added;
// await entities.AddAsync(obj);
await _context.SaveChangesAsync();
return obj;
}
感谢您的帮助!
我忘记附上我要创建的新项目!
public virtual async Task<T> Add(T obj, string createdBy= null, bool IsAutogeneratedId = true)
{
obj.CreatedDate = DateTime.UtcNow;
obj.CreatedBy = createdBy;
if (_context.Entry(obj).State == EntityState.Detached)
{
entities.Attach(obj);
}
if (!IsAutogeneratedId)
{
var lastId = entities.Count();
var appId = createdBy.Split("=");
var newId = $"{appId[0].Replace(": ", "")}_{lastId + 1}";
obj.Id = newId;
}
_context.Attach(obj).State = EntityState.Added;
await _context.SaveChangesAsync();
return obj;
}