0
DbContext에서 확장 메서드를 추가하려면 어떻게해야합니까?확장 메서드가있는 stackoverflow 예외
public IQueryable<T> All<T>() where T : class, new()
{
return this.All<T>();
}
내가 코드를 사용하여이를 호출 오전 : 작업의
var u = UnitOfWork.All<User>().ToList();
단위는 다음과 같습니다
protected DBContext UnitOfWork = new DBContext();
이 또한 발생을 : 이것은 스택 오버플로 예외가 발생
return this.All<T>().AsQueryable();
나의 등급 :
public class DBContext : DbContext, ISession
{
public DBContext()
: this("name=myConnString")
{
}
public SurventrixContext(string dbcontext)
: base(dbcontext)
{
}
#region mappings
private void UserMappings(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().ToTable("tUsers");
modelBuilder.Entity<User>().Property(x => x.UserID).HasColumnName("fU_UserID")
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<User>().Property(x => x.FirstName).HasColumnName("fU_First_Name");
modelBuilder.Entity<User>().Property(x => x.LastName).HasColumnName("fU_Last_Name");
modelBuilder.Entity<User>().Property(x => x.Login).HasColumnName("fU_Login");
modelBuilder.Entity<User>().Property(x => x.Password).HasColumnName("fU_Password");
modelBuilder.Entity<User>().Property(x => x.Email).HasColumnName("fU_Email");
modelBuilder.Entity<User>().Property(x => x.Tel).HasColumnName("fU_Tel");
modelBuilder.Entity<User>().Property(x => x.CreateDate).HasColumnName("fU_CreateDate");
modelBuilder.Entity<User>().Property(x => x.LastPasswordChangedDate).HasColumnName("fU_LastPasswordChangedDate");
modelBuilder.Entity<User>().Property(x => x.PasswordKey).HasColumnName("fU_PasswordKey");
modelBuilder.Entity<User>().Property(x => x.KeyExpiryDate).HasColumnName("fU_KeyExpiryDate");
modelBuilder.Entity<User>().Property(x => x.ApiToken).HasColumnName("fU_ApiToken");
modelBuilder.Entity<User>().HasKey(t => t.UserID)
.Property(x => x.UserID);
}
#endregion
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
UserMappings(modelBuilder);
base.OnModelCreating(modelBuilder);
}
public DbSet<User> User { get; set; }
public DbSet<ReportCommit> ReportCommit { get; set; }
public DbSet<Organization> Organization { get; set; }
public void CommitChanges()
{
this.SaveChanges();
}
public void Delete<T>(System.Linq.Expressions.Expression<Func<T, bool>> expression) where T : class, new()
{
this.Delete<T>(expression);
}
public void Delete<T>(T item) where T : class, new()
{
this.Delete<T>(item);
}
public void DeleteAll<T>() where T : class, new()
{
this.DeleteAll<T>();
}
public T Single<T>(System.Linq.Expressions.Expression<Func<T, bool>> expression) where T : class, new()
{
return this.Single<T>(expression);
}
public IQueryable<T> All<T>() where T : class, new()
{
return this.All<T>().AsQueryable();
}
public void Add<T>(T item) where T : class, new()
{
this.Add<T>(item);
}
public void Add<T>(IEnumerable<T> items) where T : class, new()
{
foreach (var item in items)
{
this.Add<T>(item);
}
}
public void Update<T>(T item) where T : class, new()
{
this.Update<T>(item);
}
}
내 나쁜 - 내가 인터페이스 방법을'구현 어떻게'''System.Linq.IQueryable 모든 () 여기서 T : 새로운 클래스,();''''? –
Haroon
추가 예제를 추가했습니다. –
lol ... 게시하기 전에 좀 더 깊이 파고'''Set'''그냥 테스트 해보기. 감사합니다 :) –
Haroon