рдпреВрдирд┐рд╡рд░реНрд╕рд▓ ADO.NET рдЗрдХрд╛рдИ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА

рдкреНрд░рд┐рдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░!
ASP.NET MVC2 + рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреЛрдИ рджреБрдЦ рдирд╣реАрдВ рдерд╛ , рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдиреЗ рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рд╕реВрдЪреА рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдерд╛ред рдХрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:


рдлрд╛рд░реНрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ:
Unit a = new Unit();
BaseRepository<Unit> unitRepository = new BaseRepository<Unit>();
...........
unitRepository.AddItem(a);
unitRepository.ChangeItem(a);
unitRepository.DeleteItem(a.ID);


* This source code was highlighted with Source Code Highlighter .


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рд╕реЗрдЯ ( ObjectSet <...>) ObjectContext рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд


рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рд╕рд╛рд░рд╛ рдХреЛрдб рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛, рдЖрдкрдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИред

рдкрд░рд╛рд╡рд░реНрддрди рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЕрдкрдиреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░реИрдХ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ - рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧреЗрдЯрдЯрд╛рдЗрдк () рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╡рд░реНрдЧ рд╕рдВрд░рдЪрдирд╛ (рдЗрд╕рдХреЗ рд╕рднреА рдЧреБрдг, рдХреНрд╖реЗрддреНрд░, рд╡рд┐рдзрд┐рдпрд╛рдБ) рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдпрд╣ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рдХрд┐ рдпреЗ рдлрд╝реАрд▓реНрдб рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред

рдЧреЗрдЯ рдЯрд╛рдЗрдк () рд╡рд┐рдзрд┐ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ GetMethod () рдФрд░ GetProperty () рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
  1. рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╡рд╕реНрддреБ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  2. рдирд╛рдо рд╕реЗ рдЯрд╛рдЗрдк рдХрд░реЗрдВред
  3. ObjectContext рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд╛рдВрдЫрд┐рдд рдЗрдХрд╛рдИ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
  4. рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ "рдЦреАрдВрдЪреЛ" (рдЬреЛрдбрд╝реЗрдВ, рд╣рдЯрд╛рдПрдВ)ред


/// <summary>
/// Base repository for all sets.
/// </summary>
/// <typeparam name="T">Class from Business Model, should be EntityType</typeparam>
public class BaseRepository<T> where T : EntityObject


* This source code was highlighted with Source Code Highlighter .


рдХреЛрдг рдХреЛрд╖реНрдардХ рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд╛рдо, рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред рдЪреВрдВрдХрд┐, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, ObjectContext рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ ****** рд╕реЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрдХ рдореЗрдВ ****** рдЗрдХрд╛рдИ рдХрд╛ рдирд╛рдо рд╣реИред рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рдХреЛрдб рдореЗрдВ рдЗрд╕ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реЗрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА ObjectSets рдореЗрдВ DeleteObject рдкрджреНрдзрддрд┐ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдЦреБрдж ObjectContext рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдЬрд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ):

//DataBase container
DBContainer db = new DBContainer();


* This source code was highlighted with Source Code Highlighter .


рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдб рдХреА рдХреБрдЫ рдФрд░ рд▓рд╛рдЗрдиреЗрдВ рдХреЗрд╡рд▓ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреА рд╣реИрдВ:
/// <summary>
/// Reflection - get name of T.
/// </summary>
private string name
{
get { return typeof (T).Name; }
}


* This source code was highlighted with Source Code Highlighter .


рдпрд╣ рдЯрд╛рдЗрдк T (рдКрдкрд░) рдХрд╛ рдирд╛рдо рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ "рдореИрдХреНрд░реЛ" рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ:
//Simple macros
Type dbT = typeof (DBContainer);


* This source code was highlighted with Source Code Highlighter .


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдЪрдп рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдкреВрд░реЗ рдХреЛрдб рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рдореИрдВ рдХреЛрдб рдХреЗ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред

using System;
using System.Collections. Generic ;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Data.Objects;
using System.Data.Objects.DataClasses;

namespace Chib.Lib
{
/// <summary>
/// Base repository for all sets.
/// </summary>
/// <typeparam name="T">Class from Business Model, should be EntityType</typeparam>
public class BaseRepository<T> where T : EntityObject
{
/// <summary>
/// Reflection - get name of T.
/// </summary>
private string name
{
get { return typeof (T).Name; }
}

//DataBase container
DBContainer db = new DBContainer();
//Simple macros
Type dbT = typeof (DBContainer);

/// <summary>
/// Get all items in Set as IQueryable, making easy to operate with data.
/// </summary>
/// <returns>Items in Set</returns>
public IQueryable<T> AllItems
{
get
{
return (IQueryable<T>)AllItemsAsObj;
}
}

/// <summary>
/// Get the items (ObjectSet) as Object. For internal use only.
/// </summary>
/// <returns>Object</returns>
private object AllItemsAsObj
{
get
{
PropertyInfo mi = dbT.GetProperty(name + "Set" );
object obj = mi.GetValue(db, null );
return obj;
}
}

/// <summary>
/// Add item to collection and save changes.
/// </summary>
/// <typeparam name="T">The type of item</typeparam>
/// <param name="item">Added item</param>
/// <returns>True if no errors.</returns>
public bool AddItem(T item)
{
try
{
object obj = AllItemsAsObj;
obj.GetType().GetMethod( "AddObject" ).Invoke(obj, new object [] { item });
db.SaveChanges();
return true ;
}
catch
{ return false ; }
}

/// <summary>
/// Get the single T item by it's ID
/// </summary>
/// <param name="id">Guid ID</param>
/// <returns>Null if nothing found.</returns>
public T GetItem( Guid id)
{
foreach ( var item in AllItems)
{
if ( new Guid (item.GetType().GetProperty( "ID" ).GetValue(item, null ).ToString()) == id)
return (T)item;
}
return null ;
}

/// <summary>
/// Delets an item by it's ID.
/// </summary>
/// <param name="id">ID of item</param>
/// <returns>True if no errors.</returns>
public bool DeleteItem( Guid id)
{
try
{
T item = GetItem(id);
object set = AllItemsAsObj;
set .GetType().GetMethod( "DeleteObject" ).Invoke( set , new object [] { item });
db.SaveChanges();
return true ;
}
catch
{
return false ;
}
}

public bool ChangeItem(T item)
{
try
{
var guid = new Guid (item.GetType().GetProperty( "ID" ).GetValue(item, null ).ToString());
T modyfying = AllItems.Single(x => x.GetType().GetProperty( "ID" ).GetValue( null , null ).ToString() == guid.ToString());
modyfying = item;
db.SaveChanges();
return true ;
}
catch
{
return false ;
}
}

/// <summary>
/// Force save changes to DB.
/// </summary>
/// <returns>True if no errors.</returns>
public bool SaveChanges()
{
try
{
db.SaveChanges();
return true ;
}
catch
{
return false ;
}
}
}
}


* This source code was highlighted with Source Code Highlighter .


рдиреБрдХрд╕рд╛рди

рдпрд╣рд╛рдВ рдореИрдВ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдореЗрдВ рдореИрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рдерд╛, рдЬреЛ рддреБрд░рдВрдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреЛрдб рдХреЗ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдЯреБрдХрдбрд╝реЗ рднреАред

рдирд┐рдЬреА рдСрдмреНрдЬреЗрдХреНрдЯ AllItemsAsObj () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдСрдмреНрдЬреЗрдХреНрдЯрд╕реЗрдЯ) рдХреЗ рд╕реЗрдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд▓рдЧрднрдЧ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рдореВрд▓ рд╡рд╕реНрддреБ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЬреЛрдбрд╝-рддреЛрдбрд╝ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

AddItem (T рдЖрдЗрдЯрдо) рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред
рдореИрдВ GetMethod рд╡рд┐рдзрд┐ рдХрд╛ рдЪрд╛рд▓рд╛рди рд╡рд┐рдзрд┐ рдирд╣реАрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдЬрд┐рд╕ рдкрд░ рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреЗ рд╣реИрдВред рдЕрд╢рдХреНрдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдЬреНрдЮрд╛рдд рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛), рд╡рд┐рдзрд┐ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЛ!

/// <summary>
/// Get the single T item by it's ID
/// </summary>
/// <param name="id">Guid ID</param>
/// <returns>Null if nothing found.</returns>
public T GetItem( Guid id)
{
foreach ( var item in AllItems)
{
if ( new Guid (item.GetType().GetProperty( "ID" ).GetValue(item, null ).ToString()) == id)
return (T)item;
}
return null ;
}


* This source code was highlighted with Source Code Highlighter .


рдХреЛрдб рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╕реЗрдЯ рд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдЕрдкрдиреА рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЪреБрдирддрд╛ рд╣реИред рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╣рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ ID рдлрд╝реАрд▓реНрдб рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдЕрд▓рдЧ рд╣реИ - рдмрд╕ рдЕрдкрдиреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде "рдЖрдИрдбреА" рдХреЗ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдмрджрд▓реЗрдВред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЬрдм рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╛рдВрдЫрд┐рдд рд╡рд╕реНрддреБ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред

рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ:
db.SaveChanges();

* This source code was highlighted with Source Code Highlighter .

рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд┐рдП рдЧрдП рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд░реНрдЧ рд╣реИрдВ: рдпреВрдирд┐рдЯ рдФрд░ рд╕рд┐рдЯреАред
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВ:
BaseRepository<Unit> unitRepository = new BaseRepository<Unit>();
BaseRepository<City> cityRepository = new BaseRepository<City>();


* This source code was highlighted with Source Code Highlighter .

рд╕рдм рдХреБрдЫ, рдХреЛрдИ рдЕрдзрд┐рдХ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдХрд╛рдо рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреАред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In124619/


All Articles