I have one EF edmx(BaseEntities). As business requirement, I created two files called. QTDAL and AdminDAL.
Please see the following codes. My two classes (QTDAL, AdminDAL) inheritances to BaseEntities. (Note: I am not sure this is allowed to do that)
(No errors now) I would like to have suggestions if there is any better solution to achieve as the below code.
Any advise, please ?
public void TestMethod1()
{
IQTDAL qtContext = new QTDAL();
var value = qtContext.AllCampaigns().FirstOrDefault();
//var value = qtContext.AddOrUpdateCampaign(TestCampaign);
Assert.IsNotNull(value);
}
Examples:
public partial class BaseEntities : DbContext
{
public BaseEntities()
: base("name=BaseEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Campaign> Campaigns { get; set; }
public virtual DbSet<User> Users { get; set; }
}
public class QTDAL : BaseEntities, IQTDAL
{
public IEnumerable<Campaign> AllCampaigns()
{
return Campaigns.ToList();
}
public int AddOrUpdateCampaign(Campaign campaign)
{
Campaigns.AddOrUpdate(campaign);
return SaveChanges();
}
public int DeleteCampaign(Campaign campaign)
{
Campaigns.Remove(campaign);
return SaveChanges();
}
}
public class AdminDAL : BaseEntities, IAdminDAL
{
public IEnumerable<User> AllUsers()
{
return Users;
}
public int AddOrUpdateUser(User user)
{
Users.AddOrUpdate(user);
return SaveChanges();
}
public int DeleteUser(User user)
{
Users.Remove(user);
return SaveChanges();
}
}