comparison Source/Mapping/Fluent/AssociationMap.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f990fcb411a9
1 using System;
2 using System.Collections.Generic;
3 using System.Linq.Expressions;
4
5 namespace BLToolkit.Mapping.Fluent
6 {
7 public partial class MapFieldMap<T, TR>
8 {
9 public class AssociationMap<TRt>
10 {
11 private readonly MapFieldMap<T, TR> _owner;
12 private readonly bool _canBeNull;
13 private readonly List<Expression<Func<T, TRt>>> _thisKeys;
14
15 public AssociationMap(MapFieldMap<T, TR> owner, bool canBeNull, List<Expression<Func<T, TRt>>> thisKeys)
16 {
17 this._owner = owner;
18 this._canBeNull = canBeNull;
19 this._thisKeys = thisKeys;
20 }
21
22 public MapFieldMap<T, TR> ToMany<TRf, TRo>(Expression<Func<TRf, TRo>> otherKey, params Expression<Func<TRf, TRo>>[] otherKeys)
23 {
24 var keys = new List<Expression<Func<TRf, TRo>>>(otherKeys);
25 keys.Insert(0, otherKey);
26 return this._owner.Association(this._canBeNull, this._thisKeys, keys);
27 }
28
29 public MapFieldMap<T, TR> ToOne<TRo>(Expression<Func<TR, TRo>> otherKey, params Expression<Func<TR, TRo>>[] otherKeys)
30 {
31 var keys = new List<Expression<Func<TR, TRo>>>(otherKeys);
32 keys.Insert(0, otherKey);
33 return this._owner.Association(this._canBeNull, this._thisKeys, keys);
34 }
35 }
36 }
37 }