fix: 修复实体对象无空构造函数时通过Repository操作引发异常的问题,增加Lazy改进并发

This commit is contained in:
xuna
2022-07-26 20:06:26 +08:00
parent aba2e14c5d
commit c33d8c6d39
5 changed files with 18 additions and 13 deletions

View File

@ -219,7 +219,7 @@ namespace FreeSql
public DbSet<TEntity> AttachOnlyPrimary(TEntity data)
{
if (data == null) return this;
var pkitem = (TEntity)Activator.CreateInstance(_entityType);
var pkitem = (TEntity)_entityType.CreateInstanceGetDefaultValue();
foreach (var pk in _db.OrmOriginal.CodeFirst.GetTableByEntity(_entityType).Primarys)
{
var colVal = _db.OrmOriginal.GetEntityValueWithPropertyName(_entityType, data, pk.CsName);
@ -267,8 +267,8 @@ namespace FreeSql
{
if (data == null) throw new ArgumentNullException(nameof(data));
var key = _db.OrmOriginal.GetEntityKeyString(_entityType, data, false);
var state = new EntityState((TEntity)Activator.CreateInstance(_entityType), key);
_db.OrmOriginal.MapEntityValue(_entityType, data, state.Value);
var state = new EntityState((TEntity)_entityType.CreateInstanceGetDefaultValue(), key);
_db.OrmOriginal.MapEntityValue(_entityType, data, state.Value);
return state;
}
bool? ExistsInStates(TEntity data)