使用 EF Code First 登录到数据库

Log to database with EF Code First

我想让 log4net 登录到我的数据库。我添加了一个 AdoNetAppender ,如 docs 中所写。文档还给出了要创建的 Log-table 的定义。由于我在 Code First 中使用 Entity Framework,并且在开发过程中经常重新创建数据库 (DropCreateDatabaseAlways),因此我不想手动创建 table。我试图创建一个 class Log 而不是与文档中的定义相匹配。

public class Log
{
    public int Id { get; set; }
    public DateTime Date { get; set; }
    public string Thread { get; set; }
    public string Level { get; set; }
    public string Logger { get; set; }
    public string Message { get; set; }
    public string Exception { get; set; }
}

但是,在使用 AdoNetAppender 时,我收到一个看似无关的错误

Cannot drop database "aspnet-myDb-20150625044347" because it is currently in use.

但如果我取出 AdoNetAppender,它就会消失。

如何先使用 Entity Framework 代码登录到我的数据库?感谢您的帮助。

answer here可能会解决您的问题。主要问题是数据库仍然有一个打开的连接。

短片是用Pooling=false。由于这是在开发中,因此您不需要池化。

我知道不鼓励使用 link 的答案,但这是对另一个 SO 答案的 link,所以我认为我们在这里很安全。

希望对您有所帮助