Skip to content

Commit

Permalink
Merge pull request #52 from vb2ae/convert-to-linq
Browse files Browse the repository at this point in the history
covert to linq
  • Loading branch information
vb2ae authored Oct 24, 2023
2 parents dc41b44 + dc00c35 commit 1995c04
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 27 deletions.
6 changes: 3 additions & 3 deletions ClientNoSqlDB/Db/DbTable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -685,10 +685,10 @@ internal IEnumerable<T> LoadByKeysCore<K>(IKeyIndex<T, K> idx, IEnumerable<K> ke
using (var scope = ReadScope())
{
var reader = scope.Element;

foreach (var key in keys)
foreach (var info in from key in keys
let info = idx.FindByKey(key, true)
select info)
{
var info = idx.FindByKey(key, true);
if (info == null)
{
if (yieldNotFound)
Expand Down
36 changes: 12 additions & 24 deletions ClientNoSqlDB/Mapping/Metadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -220,17 +220,6 @@ public void Initialize(DbInstance db)

public void Prepare()
{
//#region Remap Ids (because of unmapped fields) ??? dont we need to preserve the data stream ???
//if (format)
//{
// int idx = 0;
// foreach (var m in _members.Values)
// m.Id = idx++;

// _members = _members.Values.ToDictionary(i => i.Id);
//}
//#endregion

MakeBlob();

_hash = Hash.Compute(_blob);
Expand Down Expand Up @@ -306,19 +295,18 @@ Action<Interceptor<T>, DataWriter, T> MakeWriteMethod()
var writer = Expression.Parameter(typeof(DataWriter));
var obj = Expression.Parameter(typeof(T));
var ops = new List<Expression>();

foreach (var member in _members.Values)
if (member.Member != null)
{
var writePropertyId = Expression.Call(writer, _writeShort, Expression.Constant((short)member.Id));
var writePropertyValue = Serializers.WriteValue(writer, obj.Member(member));
var block = Expression.Block(writePropertyId, writePropertyValue);

if (_interceptor == null)
ops.Add(block);
else
ops.Add(Expression.IfThen(Expression.Call(iceptor, _filter, obj, Expression.Constant(member.Name)), block));
}
foreach (var (member, block) in from member in _members.Values
where member.Member != null
let writePropertyId = Expression.Call(writer, _writeShort, Expression.Constant((short)member.Id))
let writePropertyValue = Serializers.WriteValue(writer, obj.Member(member))
let block = Expression.Block(writePropertyId, writePropertyValue)
select (member, block))
{
if (_interceptor == null)
ops.Add(block);
else
ops.Add(Expression.IfThen(Expression.Call(iceptor, _filter, obj, Expression.Constant(member.Name)), block));
}

ops.Add(Expression.Call(writer, _writeShort, Expression.Constant((short)-1)));

Expand Down

0 comments on commit 1995c04

Please # to comment.