namespace data. test
{< br> ///
// Data Universal operation implementation
///
///
public class repository : testrepositorybase, irepository where tentity: Class, ientity
{< br> # region irepository member
Public void Update (tentity entity)
{< br> tentity originalentity = This. find (entity. primarykey);
emitmapper. objectmappermanager. defaultinstance. getmapper (). map (entity, originalentity);
base. submitchanges ();
}
Public void Update (ilist List)
{< br> tentity originalentity = NULL;
list. tolist (). foreach (entity =>
{< br> originalentity = This. find (entity. primarykey);
emitmapper. objectmappermanager. defaultinstance. getmapper (). map (entity, originalentity);
});
base. submitchanges ();
}
Public void insert (tentity entity)
{< br> This. _ dB. gettable (). insertonsubmit (entity);
base. submitchanges ();
}
Public void insert (ilist List)
{< br> list. tolist (). foreach (entity =>
{< br> This. _ dB. gettable (). insertonsubmit (entity);
});
base. submitchanges ();
}
Public tentity insertgetidentity (tentity entity)
{
This. _ dB. gettable <tentity> (). insertonsubmit (entity );
Base. submitchanges ();
Return this. Find (entity. primarykey );
}
Public void Delete (tentity entity)
{
This. _ dB. gettable <tentity> (). deleteonsubmit (entity );
Base. submitchanges ();
}
Public iqueryable GetModel ()
{< br> This. _ dB. refresh (system. data. LINQ. refreshmode. overwritecurrentvalues, this. dbset); // solves the problem of frequent data refresh
return this. dbset;
}
Public tentity find (Params object [] keyvalues)
{
VaR mapping = _ dB. Mapping. gettable (typeof (tentity ));
VaR keys = mapping. rowtype. identitymembers. Select (M, I) => M. Name + "= @" + I). toarray ();
Return this. dbset. Where (string. Join ("&", keys), keyvalues). firstordefault ();
}
/// <Summary>
/// Attributes of a generic data table
/// </Summary>
Private iqueryable <tentity> dbset
{
Get
{
Return this. _ dB. gettable <tentity> ();
}
}
# Endregion
}
}