标签: entity-framework-6

Asp.NET应用程序中的Singleton

在我的应用程序中,我为每个调用创建一个dbcontext,依赖项通过Ninject注入它.

我一直在考虑创建一个单例类(ContextManager - BaseController将在每个请求上设置上下文),以使上下文可用,从而允许所有服务共享相同的上下文.这将使得例如禁用代理创建等变得容易,因为仅从一个地方管理上下文.

但是,当对象是单个对象时,每个请求都会覆盖上下文,这对我来说不起作用(我不希望多个请求共享一个上下文).

最好的方法是什么(如何在请求范围内优选单个上下文)?

c# asp.net entity-framework entity-framework-6

2
推荐指数
1
解决办法
458
查看次数

找不到对象"dbo.course",因为它不存在或者您没有权限

我正在开发一个ASP.NET MVC5 Web应用程序.我正在使用Entity Framework 6来满足我的数据存储需求.我正在使用它的代码第一个功能,启用了迁移.自动迁移设置为false.

我有两张桌子,我正试图改变.第一个表叫做课程,这是它的模型.

public class course
{
    [Key]
    public int courseID { get; set; }
    public int categoryID { get; set; }
    public int PaymentOptionsID { get; set; }
    [Required]
    [DisplayName("Course Code")]
    public string courseCode { get; set; }
    [Required]
    [DisplayName("Course Name")]
    public string courseName { get; set; }
    [Required]
    [DataType(DataType.Currency)]
    public decimal price { get; set; }
    [DataType(DataType.MultilineText)]
    [DisplayName("Course Description")]
    [StringLength(255, ErrorMessage = "Only a maximum of 255 characters are                                     allowed")]
    public string courseDescription { get; …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ef-migrations entity-framework-6 asp.net-mvc-5

2
推荐指数
1
解决办法
4676
查看次数

使用Moq模拟实体框架6 ObjectResult

如何使用Moq模拟Entity Framework 6 ObjectResult,以便我可以对依赖于EF数据库连接的代码进行单元测试?

按照这些方式阅读了许多问题和答案,并从我所读过的内容中收集了许多金块,我已经实现了我认为是一个相当优雅的解决方案,并且觉得我应该分享它,因为这里的社区帮助我实现了目标.因此,我将继续回答这个问题,并可能打开一些嘲弄(双关语):

c# entity-framework moq entity-framework-6 entity-framework-6.1

2
推荐指数
1
解决办法
1449
查看次数

SQL Server 2008的EntityFramework(使用LINQ)中的基于偏移/获取的分页(实现)

我正在使用SQL Server 2008和Entity Framework 6.1.3.我希望实现基于OFFSET/FETCH而不是Take()&Skip()的数据分页.

我在线搜索没有运气.有些帖子建议迁移到SQL Server 2012.在我的情况下,这不是一个选项.

有人可以建议如何在SQL Server 2008和EF 6.1.3中使用OFFSET/FETCH

sql-server pagination entity-framework sql-server-2008 entity-framework-6

2
推荐指数
2
解决办法
4601
查看次数

相同的键值已被跟踪

System.InvalidOperationException: The instance of entity type 'ProjectAssignment' cannot be tracked because another instance with the same key value for {'ProjectID'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values.
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap`1.Add(TKey key, InternalEntityEntry entry)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.St
Run Code Online (Sandbox Code Playgroud)

我制作了一个带有Worker(ID和其他列)和Project(ID和其他列)Entity和ProjectAssignment(许多ID分配给许多Workers)的项目。但是,当我尝试获取ProjectAssignment数据时,会出现Application Insights中的错误。奇怪的是,该ID并未更早出现。

这是https://github.com/Streamc/ContosoObserve1/tree/master/Proj_s

 context.Database.EnsureCreated();

  var ProjectAssignments = new ProjectAssignment[]
             {
                    new ProjectAssignment
                    {
                        ProjectID = Projects.Single( i => i.ID == 1).ID,
                        WorkerID …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-6

2
推荐指数
1
解决办法
9875
查看次数

如何在Entity Framework查询中初始化一个空列表?

我已经将列表字段添加到我的业务模型中。它尚未存储在数据库中,我希望使用以下类似内容暂时将其映射:

return MyContext.Foos.Select(foo=> new Foo
    {
        Id = foo.Id,
        Name = foo.Name,
        RequiredFeatures = new List<string>()
    }).ToList();
Run Code Online (Sandbox Code Playgroud)

但是,Entity Framework抱怨无法在LINQ to Entities查询中实例化新列表:

无法在LINQ to Entities查询中初始化实现IEnumerable'System.Collections.Generic.List`1 [[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'的类型。

基本上,它List<string>是一种复杂类型,尽管它包含默认构造函数,但该构造函数要求先运行一些初始化代码,然后才能使用列表。实体框架只是不了解如何从SQL方面生成空列表。

我还尝试使用空数组实现相同的结果:

return MyContext.Foos
    .Select(foo=> new Foo
    {
        Id = foo.Id,
        Name = foo.Name,
        RequiredFeatures = new string[0]
    }).ToList();
Run Code Online (Sandbox Code Playgroud)

LINQ to Entities不支持LINQ表达式节点类型'NewArrayBounds'。

同样,即使实体表达式简单得多,实体框架也不支持该表达式。因此,我尝试了所有数组中最简单的表达式:

return MyContext.Foos
    .Select(foo=> new Foo
    {
        Id = foo.Id,
        Name = foo.Name,
        RequiredFeatures = { }
    }).ToList();
Run Code Online (Sandbox Code Playgroud)

在构造函数和初始化程序中,LINQ to Entities仅支持属性或字段参数绑定。

我知道一种替代方法是先将所有对象加载到内存中,然后通过C#初始化列表:

return MyContext.Foos.ToList()
    .Select(foo=> …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-6

2
推荐指数
1
解决办法
1648
查看次数

实体框架-一对一-ReferentialConstraint映射到商店生成的列

我应该在EF中建立简单的一对一关系。但是我尝试插入时收到以下错误:

ReferentialConstraint映射到商店生成的列。列:“ ACCOUNT_ID”。

控制台应用程序示例:

namespace EF_ConsoleApp_Test
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var account = new Account
            {
                AccountNumber = "00123456",
                CustomerValue = new Customer { FirstName = "Joe" }
            };

            using (var db = new MainContext())
            {
                db.Accounts.Add(account);
                db.SaveChanges();
            }
        }
    }

    [Serializable]
    [Table("CUSTOMERS")]
    public class Customer
    {
        [Key]
        [Column("CUSTOMER_ID")]
        public int? Id { get; set; }

        [Required]
        [Column("FIRST_NAME")]
        [StringLength(45)]
        public string FirstName { get; set; }

        public virtual Account Account { get; set; …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server entity-framework entity-framework-6

2
推荐指数
1
解决办法
346
查看次数

在带有元组的linq连接中,LINQ to Entities中仅支持无参数构造函数和初始值设定项

我试图加入两个表并创建一个元组列表,但得到的错误是"LINQ to Entities中只支持无参数构造函数和初始值设定项"

var list = (
    from a in db.CategoryRatings
    join c in db.OverallPerformanceByCategories
        on a.CategoryRatingId equals c.CategoryRatingId
    where c.ReviewId == review.ReviewId
    select(new Tuple<string, double, double>(a.CategoryRatingName, a.CategoryWeight, c.Score))
).ToList(); 

ViewData["ListOverallRating"] = list;
Run Code Online (Sandbox Code Playgroud)

我不想创建使用元组的匿名类型列表,也可以建议其他方式.

c# linq entity-framework tuples entity-framework-6

2
推荐指数
1
解决办法
175
查看次数

.edmx文件菜单中没有“数据库中的更新模型”?

我正在尝试通过右键单击.edmx文件并选择“更新数据库中的模型”来更新模型。但是,该菜单在上下文菜单中不可用...我缺少什么吗?

在此处输入图片说明

entity-framework visual-studio entity-framework-6

2
推荐指数
1
解决办法
372
查看次数

F#中的EF C#ToListAsync等效于什么?

我在C#中有以下代码:

public async Task<List<Table>> GetRows()
{
  return await db.Table.ToListAsync();
}  
Run Code Online (Sandbox Code Playgroud)

其中db是EF 6 DbContext。

假设我访问相同的DbContext,如何在F#中编写等效内容?

我想出了这段代码,但我陷入了困境:

let getRows = async {
   let q = query { 
         from r in db.Table
             select r
         }
   q |> Seq.map(fun row -> ...) // <-- Here I might want to do some custom function
}
Run Code Online (Sandbox Code Playgroud)

谢谢

f# c#-to-f# entity-framework-6

2
推荐指数
1
解决办法
84
查看次数