相关疑难解决方法(0)

"使用ASP.NET标识创建模型时不能使用上下文"

当我们调用AccountApiController.Register()方法时,为什么会发生这种情况?

  • 什么是尝试使用上下文?
  • 什么是尝试创建上下文?
  • 我们该如何避免这种情况?
  • 我们如何调试这个?

"消息":"发生错误.",

"ExceptionMessage":"在创建模型时不能使用上下文.如果在OnModelCreating方法中使用上下文,或者同时由多个线程访问相同的上下文实例,则可能抛出此异常.请注意DbContext的实例成员和相关的类不保证是线程安全的.",

"ExceptionType": "System.InvalidOperationException"

"堆栈跟踪":"

在System.Web.Http.ApiController.d__1.MoveNext()

---从抛出异常的先前位置开始的堆栈跟踪结束

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter .HandleNonSuccessAndDebuggerNotification(任务>任务)

在System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext()"

c# asp.net multithreading entity-framework asp.net-identity

43
推荐指数
2
解决办法
9万
查看次数

在创建模型时不能使用上下文

在我的应用程序中,我收到以下错误:

在创建模型时不能使用上下文.

我不确定这意味着什么.我做了一切正常,通常它的工作原理,但对于这一个,它不是.以下是我的代码:

App.config中:

 <connectionStrings>
    <add name="DatabaseContext" connectionString="Data Source=./SQLEXPRESS;Initial Catalog=ProjectCode;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
 </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

Products.cs:

class Products
{
    public int ProductID { get; set; }
    public string ProductName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

DatabaseContext.cs:

class DatabaseContext : DbContext
{
    public DbSet<Products> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Program.cs中:

DatabaseContext context = new DatabaseContext();

try
{
   var products = context.Products.ToList();

   foreach (var item in products)
   {
      Console.WriteLine(item.ProductID + " : " + item.ProductName);
   }
      Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

这条线是失败的 var products = context.Products.ToList(); …

c# entity-framework

25
推荐指数
3
解决办法
7万
查看次数

实体框架 - 在创建模型时不能使用上下文

我正在尝试创建一个控制台应用程序,我试图使用Entity Framework动态创建数据库和表来存储数据.但是,当我尝试将数据添加到我的DbSet.我收到以下错误.

EntityFramework.dll中发生了未处理的"System.InvalidOperationException"类型异常

附加信息:创建模型时无法使用上下文.如果在OnModelCreating方法中使用上下文,或者同时由多个线程访问相同的上下文实例,则可能抛出此异常.请注意,DbContext和相关类的实例成员不保证是线程安全的.

我已经提到了其他类似错误的帖子,但没有一个解决方案有效.这是一个单线程应用程序.

错误发生在行

this.context.Environments.Add(entity)
Run Code Online (Sandbox Code Playgroud)

DataSource.cs

public class DataSource
{
        private static DataSource instance;

        public DataSource()
        {
            this.context = new CounterContext();
        }

        public static DataSource Instance
        {
            get
            {
                return instance ?? (instance = new DataSource());
            }
        }

        private CounterContext context;

        public void AddCockpitEnvironmentDetails(IList<Environment> environmentList)
        {
            foreach (var entity in environmentList)
            {
                this.context.Environments.Add(entity);
            }

            this.context.SaveChanges();
        }
...
}
Run Code Online (Sandbox Code Playgroud)

我的背景:

public class CounterContext : DbContext
{
        public CounterContext()
            : base("name=CounterDbString")
        {
            Database.SetInitializer<CounterContext>(new CreateDatabaseIfNotExists<CounterContext>());
        }
        public DbSet<CounterData> CounterDetails …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework

4
推荐指数
1
解决办法
1万
查看次数