【发布时间】:2016-08-16 10:14:04
【问题描述】:
我正在尝试使用数据库在我的新项目中设置我的数据库,但是我一直遇到这个问题:
An unhandled exception of type 'System.StackOverflowException' occurred in System.Core.dll
我使用 web api 文件夹创建了一个空的 4.5 项目。然后我添加了 3 个类库,BO(业务对象)、BLL(业务逻辑)和 DAL(数据访问层)。
首先,主应用程序有 web.config 和这样的连接字符串
<connectionStrings>
<add name="ConnString" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Quantico;Integrated Security=True" providerName=".NET Framework Data Provider for SQL Server"/>
</connectionStrings>
在我的 BO 库中,我有 2 个类库和性别
基础
public abstract class Base
{
public int ID { get; set; }
public Boolean isValid { get; set; }
public DateTime createdOn { get; set; }
public int createdID { get; set; }
/*public Person createdPerson { get; set; }*/
public DateTime updatedOn { get; set; }
public int updatedID { get; set; }
/*public Person updatedPerson { get; set; }*/
}
性别
public class Gender : Base
{
public string Description { get; set; }
}
在我的 dal 中,我有 2 类 GenderDAL 和 Appcontext
AppContext is like this
public class AppContext : DbContext
{
public AppContext() : base("ConnString")
{
}
public DbSet<Gender> Gender { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Gender>().ToTable("Gender");
modelBuilder.Entity<Gender>().HasKey(x => x.ID);
modelBuilder.Entity<Gender>().Property(x => x.Description).HasMaxLength(255);
modelBuilder.Entity<Gender>().Property(x => x.Description).IsRequired();
modelBuilder.Entity<Gender>().Property(x => x.createdID).IsRequired();
modelBuilder.Entity<Gender>().Property(x => x.createdOn).IsRequired();
}
}
GenderDAL如下
public class GenderDAL : AppContext
{
private AppContext db = null;
public GenderDAL()
{
db = new GenderDAL();
}
public IEnumerable<Gender> GetGenders()
{
return db.Gender.ToList<Gender>();
}
}
问题发生在base(connstring),我的控制器是这样的
public class GenderController : ApiController
{
private GenderBLL db = null;
[HttpGet]
public IEnumerable<Gender> Genders()
{
db = new GenderBLL();
return db.GetGenders();
}
}
我的业务逻辑在这个阶段并不多,但它是这样的
public class GenderBLL
{
private GenderDAL db = null;
#region constructor
public GenderBLL()
{
db = new GenderDAL();
}
#endregion
public IEnumerable<Gender> GetGenders()
{
return db.GetGenders();
}
}
如果我查看我的服务器资源管理器,我可以在数据连接下看到我已连接到数据库,但是不存在表。我相信这是我的问题,我不知道如何填充它,或者我错过了什么步骤
【问题讨论】:
标签: c# asp.net asp.net-mvc-4 asp.net-web-api asp.net-web-api2