标签: entity-framework

序列化"SubSonic.Schema .DatabaseColumn"类型的对象时检测到循环引用.

我正在尝试做一个简单的JSON返回,但我遇到了问题,我有以下内容.

public JsonResult GetEventData()
{
    var data = Event.Find(x => x.ID != 0);
    return Json(data);
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个HTTP 500,例外情况如此问题的标题所示.我也试过了

var data = Event.All().ToList()
Run Code Online (Sandbox Code Playgroud)

这给了同样的问题.

这是一个错误还是我的实现?

.net c# subsonic json entity-framework

166
推荐指数
7
解决办法
20万
查看次数

更新行如果存在其他插入逻辑与实体框架

有没有人建议使用实体框架实现"更新行,如果它存在其他插入"逻辑的最有效方法?

c# entity-framework

166
推荐指数
5
解决办法
14万
查看次数

.ToList(),. AsEnumerable(),AsQueryable()之间的区别是什么?

我知道LINQ to Entities和LINQ to Objects的一些区别,第一个实现IQueryable和第二个实现IEnumerable,我的问题范围在EF 5中.

我的问题是这3种方法的技术差异是什么?我看到,在许多情况下,所有这些都有效.我也看到使用它们的组合.ToList().AsQueryable().

  1. 这些方法究竟意味着什么?

  2. 是否有任何性能问题或某些因素会导致使用另一个?

  3. 例如,为什么会使用?.ToList().AsQueryable()而不是.AsQueryable()

linq-to-entities entity-framework entity-framework-4 entity-framework-5

166
推荐指数
3
解决办法
6万
查看次数

如果您打扰,人们如何使用Entity Framework 6进行单元测试?

我刚刚开始使用单元测试和TDD.我之前已经涉足过,但现在我决心将它添加到我的工作流程并编写更好的软件.

我昨天问了一个问题,包括这个问题,但这似乎是一个问题.我坐下来开始实现一个服务类,我将用它来从控制器中抽象出业务逻辑,并使用EF6映射到特定的模型和数据交互.

问题是我已经阻止了自己,因为我不想在存储库中抽象EF(它仍然可以在服务之外用于特定查询等)并且想测试我的服务(将使用EF Context) .

在这里我想是问题,有没有意义这样做?如果是这样的话,人们如何在野外做到这一点,因为IQueryable引起的漏洞抽象以及Ladislav Mrnka关于单元测试主题的许多重要帖子都不是直截了当的,因为Linq提供商在处理内存时存在差异与特定数据库相关的实现.

我想测试的代码看起来很简单.(这只是虚拟代码,试图理解我在做什么,我想用TDD驱动创建)

上下文

public interface IContext
{
    IDbSet<Product> Products { get; set; }
    IDbSet<Category> Categories { get; set; }
    int SaveChanges();
}

public class DataContext : DbContext, IContext
{
    public IDbSet<Product> Products { get; set; }
    public IDbSet<Category> Categories { get; set; }

    public DataContext(string connectionString)
                : base(connectionString)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

服务

public class ProductService : IProductService
{
    private IContext _context;

    public ProductService(IContext dbContext)
    {
        _context = dbContext;
    }

    public IEnumerable<Product> GetAll() …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing entity-framework entity-framework-6

164
推荐指数
8
解决办法
9万
查看次数

"在使用ItemsSource之前,项目集合必须为空."

我正在尝试将图像显示在WPF ListView中,其风格类似于WrapPanel,如旧的ATC Avalon团队文章中所述:如何创建自定义视图.

WPF ListView WrapPanel图像

当我尝试使用LINQ-to-Entities查询的ADO.NET Entity Framework对象集合填充ListView时,我得到以下异常:

例外

在使用ItemsSource之前,项集合必须为空.

我的代码......

Visual Basic

Private Sub Window1_Loaded(...) Handles MyBase.Loaded
    ListViewImages.ItemsSource = From g In db.Graphic _
                                 Order By g.DateAdded Ascending _
                                 Select g
End Sub
Run Code Online (Sandbox Code Playgroud)

XAML

<ListView Name="ListViewImages"
          SelectionMode="Single"
          ItemsSource="{Binding}">
    <local:ImageView />
</ListView>
Run Code Online (Sandbox Code Playgroud)

我在那条线上放了一个断点. ListViewImages.ItemsSourceNothing刚刚LINQ分配之前.

.net vb.net wpf binding entity-framework

162
推荐指数
9
解决办法
14万
查看次数

IEntityChangeTracker的多个实例不能引用实体对象.同时在Entity Framework 4.1中向实体添加相关对象

我正在尝试保存员工详细信息,其中包含对City的引用.但每当我尝试保存我的联系人时,我都会得到例外"ADO.Net实体框架实例对象不能被IEntityChangeTracker的多个实例引用"

我读了这么多帖子,但仍然没有弄清楚该怎么做...我的保存按钮点击代码如下

protected void Button1_Click(object sender, EventArgs e)
    {
        EmployeeService es = new EmployeeService();
        CityService cs = new CityService();

        DateTime dt = new DateTime(2008, 12, 12);
        Payroll.Entities.Employee e1 = new Payroll.Entities.Employee();

        Payroll.Entities.City city1 = cs.SelectCity(Convert.ToInt64(cmbCity.SelectedItem.Value));

        e1.Name = "Archana";
        e1.Title = "aaaa";
        e1.BirthDate = dt;
        e1.Gender = "F";
        e1.HireDate = dt;
        e1.MaritalStatus = "M";
        e1.City = city1;        

        es.AddEmpoyee(e1,city1);
    }
Run Code Online (Sandbox Code Playgroud)

Employeeservice代码

public string AddEmpoyee(Payroll.Entities.Employee e1, Payroll.Entities.City c1)
        {
            Payroll_DAO1 payrollDAO = new Payroll_DAO1();
            payrollDAO.AddToEmployee(e1);  //Here I am getting Error..
            payrollDAO.SaveChanges(); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ado.net entity-framework foreign-keys

161
推荐指数
5
解决办法
17万
查看次数

"具有语句主体的lambda表达式无法转换为表达式树"

在使用EntityFramework时,我A lambda expression with a statement body cannot be converted to an expression tree在尝试编译以下代码时收到错误" ":

Obj[] myArray = objects.Select(o =>
{
    var someLocalVar = o.someVar;

    return new Obj() { 
    Var1 = someLocalVar,
    Var2 = o.var2 };
}).ToArray();
Run Code Online (Sandbox Code Playgroud)

我不知道错误意味着什么,最重要的是如何解决它.有帮助吗?

c# linq linq-to-entities entity-framework

160
推荐指数
8
解决办法
9万
查看次数

实体框架回滚并删除错误的迁移

我在C#中使用EF 6.0进行手动迁移和更新.我在数据库上有大约5次迁移,但我意识到上次迁移很糟糕,我不想要它.我知道我可以回滚到先前的迁移,但是当我添加新的(固定的)迁移并运行Update-Database时,即使应用了错误的迁移.

我试图回滚到上一次迁移并删除迁移错误的文件.但是,当我尝试添加新的迁移时,我在更新数据库时遇到错误,因为迁移文件已损坏(更具体地说,第一行代码将表A重命名为B并且是下一行,EF正在尝试更新表名字A - 也许是一些EF错误).

是否有一些我可以运行的查询,这会告诉EF类似于"忘记上次迁移,就像它从未存在过,这很糟糕"?像删除迁移这样的东西.

Edit1 我找到了适合我的解决方案.将模型更改为良好状态并运行Add-Migration TheBadMigration -Force.这将重新构建最后的,而不是应用的迁移.

无论如何,这仍然没有完全回答原来的问题.如果我将UpdateDatabase更改为错误的迁移,我没有找到如何回滚和创建新迁移的好方法,不包括坏迁移.

谢谢

c# migration entity-framework rollback

160
推荐指数
6
解决办法
20万
查看次数

实体框架:没有主键的表

我有一个现有的数据库,我想用EF4.0构建一个新的应用程序

某些表没有定义主键,因此当我创建新的实体数据模型时,我收到以下消息:"表/视图TABLE_NAME没有定义主键,也没有推断出有效的主键.此表/视图已被排除.要使用该实体,您需要检查您的架构,添加正确的密钥,并取消注释".

如果我想使用它们并修改数据,我是否必须在这些表中添加PK,或者是否有解决方法以便我不必?

.net entity-framework

158
推荐指数
7
解决办法
15万
查看次数

在Entity Framework中设置数据库超时

我的命令保持超时,所以我需要更改默认命令超时值.

我发现了myDb.Database.Connection.ConnectionTimeout,但它确实如此readonly.

如何在Entity Framework 5中设置命令超时?

c# asp.net-mvc entity-framework connection-timeout .net-4.5

158
推荐指数
7
解决办法
21万
查看次数