User-111101990 posted
hi anyone can give me some guidance? is this architecture design ok? and i can not insert a record into database? and no error. is there something i ignored? feel free to leave ur opinion,plz. thanks.
BaseRepository.cs dal
public partial class BaseRepository<T> where T : class
{
#region Private member variables...
//internal CityLifeInfoEntities Context;
//internal DbSet<TEntity> DbSet;
#endregion
// crud Create-Read-Update-Delete Find
//
// add remove modify list detail
#region Public Constructor...
///// <summary>
///// Public Constructor,initializes privately declared local variables.
///// </summary>
///// <param name="context"></param>
//public BaseRepository(CityLifeInfoEntities context)
//{
// this.Context = context;
// this.DbSet = context.Set<TEntity>();
//}
#endregion
private CityLifeInfoEntities dataContext;
// private readonly IDbSet<T> dbset;
internal DbSet<T> Dbset;
// internal DbSet<T> DbSet;
protected BaseRepository(IDatabaseFactory databaseFactory)
{
DatabaseFactory = databaseFactory;
Dbset = DataContext.Set<T>();
}
protected IDatabaseFactory DatabaseFactory
{
get;
private set;
}
protected CityLifeInfoEntities DataContext
{
get { return dataContext ?? (dataContext =
DatabaseFactory.Create()); }
}
public virtual T Add(T entity)
{
// dataContext.Database.Log = Console.Write;
// dataContext.Entry(entity).State = EntityState.Added;
Dbset.Add(entity);
return entity;
}
unitofwork.cs
public class UnitOfWork : IUnitOfWork
{
private CityLifeInfoEntities dbContext;
private readonly IDatabaseFactory dbFactory;
protected CityLifeInfoEntities DbContext
{
get
{
return dbContext ?? dbFactory.Create();
}
}
public UnitOfWork(IDatabaseFactory dbFactory)
{
this.dbFactory = dbFactory;
}
public void SaveChanges()
{
dbContext.SaveChanges();
}
}
MemberInfoRepository.cs Dal
public class MemberInfoRepository : BaseRepository<MemberInfo>, IMemberInfoRepository
{
public MemberInfoRepository(IDatabaseFactory databaseFactory)
: base(databaseFactory)
{
}
/// <summary>
/// GetMemberInfoByLoginId
/// </summary>
/// <param name="loginId"></param>
/// <returns></returns>
public MemberInfo GetMemberInfoByLoginId(string loginId)
{
return base.GetMany(m => m.LoginId == loginId).FirstOrDefault();
}
/// <summary>
/// add a mem
/// </summary>
/// <param name="memberInfo"></param>
/// <returns></returns>
public MemberInfo Create(MemberInfo memberInfo)
{
return base.Add(memberInfo);// DataContext.MemberInfo.Add(memberInfo);
}
}
MemberInfoService .css Bll
public class MemberInfoService : IMemberInfoService
{
private static readonly ILog Log =
LogManager.GetLogger(typeof(MemberInfoService));
// ReSharper disable once InconsistentNaming
private readonly IMemberInfoRepository memberInfoRepository;
private readonly IUnitOfWork unitOfWork;
public MemberInfoService(IMemberInfoRepository repository, IUnitOfWork unitOfWork)
{
memberInfoRepository = repository;
this.unitOfWork = unitOfWork;
}
public MemberInfo GetMemberInfoByLoginId(string loginId)
{
var mi= memberInfoRepository.GetMemberInfoByLoginId(loginId);
unitOfWork.SaveChanges();
return mi;
}
public MemberInfo Create(MemberInfo memberInfo)
{
var memberinfo = memberInfoRepository.Create(memberInfo);
unitOfWork.SaveChanges();
return memberinfo;
}
}