标签: entity-framework-6

将 Entity Framework Code First 与 mysql 一起使用时强制 engine=innodb

我使用实体框架 6 和 msyql 数据库创建了一个新的 .NET MVC 5 Web 应用程序。我首先使用代码/模型。数据库服务器有一个默认的存储引擎 MyISAM,但我希望 EF 创建的表是 InnoDb。有谁知道是否有办法指定 EF 将在CREATE TABLE语句中使用的存储引擎?

mysql asp.net-mvc entity-framework entity-framework-6 entity-framework-migrations

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

循环遍历实体框架 6 中的表

对不起,这个简单的问题。我是新手。我有一个包含多个表的实体模型,我想获取表的列表,然后我想从表中获取列的内容。

例如,我有科目表:生物、化学和物理,每个表都有一个列 className(在其他列中)。我想遍历表格,获取名称,然后获取该列下的内容,因为我需要ToList()它。

我想做这样的事情:

for each (table in myEntityModel)
{
  Get tableName from table 
  Get contents under className from table 
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用元数据工作区,并且得到了一个 tableName 列表,但这对我获取每个表的内容并没有太大帮助。我可以查询单个表,但我不知道如何更改表。如果我使用:from r in myEntity.Biology select{...},我将无法更改我所指的实体集。

哦,而且,如果我正在做的事情的上下文有帮助,我正在尝试在 Visual Studios 2015 中的 Ajax Control Toolkit 16.1 的帮助下构建一个手风琴。我使用的是实体框架 6.0。主题名称将是 headercontainer,类列表将作为网格视图添加到手风琴窗格中。我是 C#、Visual Studios、数据库、查询、实体模型以及我正在使用的几乎所有内容的新手,但可以随意使用尽可能多的术语。如果有什么让我感到困惑,我会谷歌它。谢谢!

c# entity-framework ajaxcontroltoolkit entity-framework-6 visual-studio-2015

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

配置单向一对多关系EF6

我有两个实体如下:

public class FirstEntity
{
    public int Id { get; set; }

    public ICollection<SecondEntity> SecondEntityCollection { get; set; }
}

public class SecondEntity
{
    [Key]
    [Column(Order = 0)]
    public int FirstEntitySomeId { get; set; }

    [Key]
    [Column(Order = 1)]
    public int SecondEntityId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想SecondEntity使用 EF6生成要添加到数据库的迁移。问题是 EF 生成迁移如下:

CreateTable("dbo.SecondEntity",
        c => new
        {
            SecondEntityId = c.Int(nullable: false),
            FirstEntitySomeId = c.Int(nullable: false),
            FirstEntity_Id = c.Int(),
        })
        .PrimaryKey(t => new {t.SecondEntityId, t.FirstEntitySomeId})
        .ForeignKey("dbo.FirstEntity", t => t.FirstEntity_Id)
        .Index(t …
Run Code Online (Sandbox Code Playgroud)

c# database entity-framework-6

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

LINQ 从表中选择字段值在另一个表中的值列表

数据库上下文

class Table1

public string Id1 { get; set; }
public string Field { get; set; }
public string Id2 { get; set; }
public virtual Table2 Table2 { get; set; }

class Table2

public string Id2 { get; set; }
public string Field { get; set; }
Run Code Online (Sandbox Code Playgroud)

我需要从另一个值列表中的Table1位置搜索所有记录Table1Field

例如,首先我选择与此搜索参数匹配的所有值

IQueryable<Table2> listOfvalues = from b in dbContext.Table2 
                                  where b.Field1.Contains(searchParam) 
                                  select b;
result = listOfvalues.ToList();
Run Code Online (Sandbox Code Playgroud)

现在我需要编写代码来返回Table1Field 所在的所有字段listOfValues

c# linq entity-framework-6

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

DataMember Name 属性在实体框架中不起作用

我有这样的Dto:

public class OptimizationNodeDto : IModelWithId
    {        
        public int Id { get; set; }

        [DataMember(Name = "parentId")]
        public int? ParentOptimizationNodeId { get; set; }

        [DataMember(Name = "name")]
        public string Text { get; set; }

        [DataMember(Name = "opened")]
        public bool IsOpened { get; set; }

        [DataMember(Name = "selected")]
        public SelectedStates SelectedState { get; set; }

        public List<OptimizationNodeDto> Children { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我希望当我使用任何 API 发送这个对象时,它应该像 DataMember 中提到的那样在 JSON 中给出属性名称,但它没有发生。对于 ex.ParentOptimizationNodeId 应该作为 JSON 结果中的 parentId。我在这里发送 Dto:

 [Route("{roleId}/Optimizations")]
        [HttpPost]
        public IHttpActionResult GetOptimizationList([FromUri]int …
Run Code Online (Sandbox Code Playgroud)

c# serialization entity-framework-6

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

动态 LINQ OrderBy 日期仅在 DateTime 对象实体框架上

我目前正在使用动态 LINQ原始 codeplex 链接)库来实现动态搜索功能。我有一个要求,我需要OrderBy一个DateTime?只考虑日期而不是时间的字段。我正在使用EntityFramework.

这是示例实体。

public class SampleEntity
{
    public DateTime? DateCreated { get; set; }
    public bool Flag { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是查询数据库的代码。

var orderByString = "DateCreated.Value.Date asc, Flag"; //This is a dynamic string
var query = _context.Set<SampleEntity>().OrderBy(orderByString);
Run Code Online (Sandbox Code Playgroud)

这个表达式 ("DateCreated.Value.Date") 被解析没有问题,System.Linq.Dynamic但它抛出以下错误(这是可以理解的),因为它不受 LINQ to Entities 支持。请记住,这必须在 IQueryable 上工作(我不能使用这篇文章中的答案),因为我需要在服务器端进行排序。

LINQ to Entities 不支持指定的类型成员“日期”。仅支持初始值设定项、实体成员和实体导航属性。

解决的办法是使用DbFunctions.TruncateTime()如表示在这个答案等。但是,这不会与System.Linq.Dynamic

关于如何解决这个问题的任何想法。可能的解决方案是将另一列添加到只有日期部分的数据库DateCreated并查询该列。但是,我宁愿不这样做,而是在寻找解决此问题的其他方法。另一种方法是动态生成 lambda 表达式并返回 DbFunctions.TruncateTime,然后对 DB …

c# linq linq-to-entities entity-framework entity-framework-6

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

使用C#实体框架在时态表中插入记录

我在Temporal table使用C#实体框架插入数据时遇到问题

表架构是

CREATE TABLE People( 
    PeopleID int PRIMARY KEY NOT NULL, 
    Name varchar(50) Null, 
    LastName varchar(100) NULL, 
    NickName varchar(25), 
    StartTime datetime2 GENERATED ALWAYS AS ROW START NOT NULL, 
    EndTime datetime2 GENERATED ALWAYS AS ROW END NOT NULL, 
    PERIOD FOR SYSTEM_TIME (StartTime,EndTime) 
) WITH (SYSTEM_VERSIONING = ON(HISTORY_TABLE = dbo.PeopleHistory));
Run Code Online (Sandbox Code Playgroud)

我创建了一个EDMX asusal,并尝试使用以下C#代码插入一条记录

using (var db = new DevDBEntities()) {
    People1 peo = new People1() {
        PeopleID = 1,
        Name = "Emma",
        LastName = "Watson",
        NickName = "ICE"
    };

    db.Peoples.Add(peo); …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework temporal-database entity-framework-6

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

如何使用实体框架扩展库执行批量“INSERT IGNORE”

我正在尝试将大量对象插入表中,但我没有任何有效的方法来检查某些记录是否已经存在。每次我用这个:

using Z.EntityFramework.Extensions.Core;
...
await ac.BulkInsertAsync(query, (o) => { o.?? });
Run Code Online (Sandbox Code Playgroud)

它只是在每次找到重复项时停止插入。有没有办法一次运行所有查询而不只是在第一个错误处停止,或者直接应用IGNORE

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

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

实体框架 6 在 LINQ 查询的父对象中添加嵌套子对象

我正在开发 .NET Core 应用程序;实体框架 6

我需要在 LINQ 查询而不是 lambda 表达式中添加作为集合的子对象

用户 - 父实体

public class UserDataModel
{
    public UserDataModel()
    {
        this.Roles = new HashSet<UserRoleDataModel>();
    }

    public Guid Id { get; set; }

    public Guid IdentityProviderID {get; set;}  

    public ICollection<UserRoleDataModel> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

子实体

public class UserRoleDataModel
{
    public Guid UserId { get; set; }

    public UserDataModel Users { get; set; }

    public Guid RoleId { get; set; }

    public RoleDataModel Roles { get; set; }


}
Run Code Online (Sandbox Code Playgroud)

LINQ …

linq entity-framework-6 .net-core

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

无法在 .NET 标准 2 项目中使用实体框架

如何在 .NET Standard 项目中使用实体框架或类似的东西?

.NET Standard 2 似乎不支持 EF,这真的很烦人!

所以我尝试使用 Microsoft.EntityFrameworkCore.SqlServer 和 icrosoft.EntityFrameworkCore.SqlServer.Design

虽然我可以安装这些软件包,但我无法添加模型

我收到错误

---------------------------
Microsoft Visual Studio
---------------------------
The project's target framework does not contain Entity Framework runtime assemblies. Please review the target framework information in the project's property page.
---------------------------
OK   
---------------------------
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

我正在认真考虑从我所有的项目中摆脱 .NET Standard,但这有点过分!

保罗

c# entity-framework entity-framework-6 .net-standard-2.0

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