小编Iro*_*n84的帖子

实体框架4.3与5.0更新差异

几个月以来,我一直在研究我的ASP.NET MVC应用程序.当我第一次开始使用它时,我使用的是Entity Framework 4.3(Code-First w/Migrations).当我这样做时,我遇到了一些问题,试图在我的MainClient表上进行更新.MainClient包含客户端的所有基本信息,与BPClient表具有1:1的关系,其中包含有关该客户端与BP模块的许可协议有关的更多特定信息.这两个都可以在选项卡控件中的同一页面上进行编辑.但是,在尝试将MainClient对象的EntityState更改为EntityState.Modified时,我一直收到以下异常:

System.InvalidOperationException : An object with the same key already exists 
in the ObjectStateManager. The ObjectStateManager cannot track multiple objects 
with the same key.
Run Code Online (Sandbox Code Playgroud)

我注意到在调试时,对象本身在进入我的Controller类进行保存时被认为是Detached.作为此问题的解决方法,我对此博客文章此SO问题中的问题应用了类似的解决方案.以下是在以下MainClient对象中传递Edit方法的情况下,重新附加对象的代码后来看起来如何(凌乱,我知道)client:

var newClientObject = new MainClient { ClientID = client.ClientID };
Db.MainClients.Attach(newClientObject);
Db.Entry(newClientObject).CurrentValues.SetValues(client);

var bpClient = new BPClient { ClientID = client.ClientID, BaseClient = newClientObject };
if (client.BPClient != null)
{
    Db.BostonpostClients.Attach(bpClient);
    Db.Entry(bpClient).CurrentValues.SetValues(client.BPClient);
}

Db.SaveChanges()
Run Code Online (Sandbox Code Playgroud)

在所有测试用例中,这都很好用.直到最近.

最近,我升级了我的应用程序以使用Entity Framework 5(仍然使用Code-First).不过,当我再次测试MainClient编辑页面时,我发现了一些相当不稳定的行为.编辑时,某些字段可以毫无问题地保存.其他人永远不会致力于数据库.还有一些会坚持下去,但前提是它们是被编辑对象的唯一部分.我调试了Controller类中的DbContext,并且非常烦人地发现,不仅在页面上发生的更改被发送到Controller类,而且ObjectStateManager同时包含MainClient和BPClient对象.它与页面上所做的更改一样!顺便提一下,我在这里应该提一下,在调试时我没有收到一个错误,甚至在SaveChanges()之后也没有.

我决定尝试将代码恢复到原来的状态,也就是说这样做的逻辑方式:

Db.Entry<BPClient>(client.BPClient).State = EntityState.Modified;
Db.Entry<MainClient>(client).State …
Run Code Online (Sandbox Code Playgroud)

.net entity-framework entity-framework-4 entity-framework-5

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

EF6 Code First - 可能导致循环或多个级联路径

我正在使用EF6 Code First.我有两节课:

public class Player
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    [Key]
    public int Id { get; set; }

    [Required, MinLength(2, ErrorMessage = "Player name must be at least 2 characters length")]
    public string Name { get; set; }

    [Required]
    public int TeamClubId { get; set; }

    [Required]
    public int TeamNationalId { get; set; }

    [Required, ForeignKey("TeamClubId")]
    public virtual Team Club { get; set; }

    [Required, ForeignKey("TeamNationalId")]
    public virtual Team National { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

和:

 public class Team
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public …
Run Code Online (Sandbox Code Playgroud)

entity-framework relationship ef-code-first ef-migrations

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

实体框架5无效的列名称错误

我目前正在使用EF 5 Code First编写计费应用程序,当我运行应用程序时遇到错误.

有问题的数据库对象如下:

[Table("Client")]
public class ClientBase
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ClientID { get; set; }

    [Required]
    public string ClientName { get; set; }

    [Required]
    public bool IsActive { get; set; }

    [Required]
    public string ClientContactName { get; set; }

    [Required]
    public string ClientContactEmail { get; set; }

    [Required]
    public DateTime ClientStartDate { get; set; }

    [Required]
    public string SalesforceID { get; set; }

    public DateTime TerminatedDate { get; set; }

    public string ClientStreet { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first

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

如何在AWK 3.1.3中按定义的顺序打印数组

我用Google搜索并发现在AWK 4.0之后我们可以通过在循环之前放置PROCINFO ["sorted_in"]命令来按照定义的顺序打印数组.例如

    PROCINFO["sorted_in"] = "@ind_num_asc"
    for( i in array)
          print i, array[i]
Run Code Online (Sandbox Code Playgroud)

在AWK 4.0.2中,它可以工作.但是,我在AWK 3.1.3环境中尝试过,它没有用.这个早期版本的AWK不支持此功能吗?如何在AWK 3.1.3中实现这一目标?

awk

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

Bundler是ghost-bundling - 它使用gem但乘客返回GemNotFoundError

我正在使用Rails 2.3.11和Bundler 1.0.10.

乘客返回错误

Could not find addressable-2.2.4 in any of the sources (Bundler::GemNotFound)
Run Code Online (Sandbox Code Playgroud)

我安装了手动寻址2.2.4和我捆绑它gem 'addressable', '2.2.4'做了一个bundle install和打捆说Using addressable (2.2.4).

仍有上述错误.

我正在使用Passenger作为Apache2模块.我在Ruby 1.9.2中使用RVM.乘客运行1.8.7.即使使用RVM将Ruby切换到1.8.7也无法解决问题.

ruby-on-rails bundler

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

Android POST有空响应

我正在使用HttpClient 向http://www.pgu.donland.ru/php/Login.php发送帖子请求,并希望得到如下响应:

<?xml version="1.0" encoding="utf-8"?><resp status="1" uD="John" UID="2" e=""/>
Run Code Online (Sandbox Code Playgroud)

但不幸的是我一直在:

<?xml version="1.0" encoding="utf-8"?> <resp status="1" uD="" UID="" e=""/>

这里发生了什么?

我正在使用带有HttpClient客户端字段的自定义类,在我的构造函数中我正在使用这些设置:

SchemeRegistry schemeRegistry = new SchemeRegistry();
    schemeRegistry.register(new Scheme("http", PlainSocketFactory
                                    .getSocketFactory(), 80));
    schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(),
                                    443));

    HttpParams params = new BasicHttpParams();
    params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
    params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE,
                                    new ConnPerRouteBean(30));
    params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
    params.setParameter("http.socket.timeout", timeout * 1000);
    params.setParameter("http.connection.timeout", timeout * 1000);
    // params.setParameter("http.connection-manager.timeout", new
    // Long(timeout * 1000));
    params.setParameter("http.protocol.head-body-timeout", timeout * 1000);
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

    ClientConnectionManager cm = new SingleClientConnManager(params,
                                    schemeRegistry);
    this.client = new DefaultHttpClient(cm, …
Run Code Online (Sandbox Code Playgroud)

android

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

使用声明返回内部

我有以下功能,它接受员工ID并在员工处于活动状态时返回.

public employee GetEmployee(int empId)
{ 
  using(var dbcontext = new dbentities())
  {
    return dbcontext.employee.Where(emp => emp.id == empId and emp.IsActive == true);
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:我使用了一个using语句,因此每当using块结束时,在using语句中创建的对象将被释放.但是,在实际使用块结束之前,我已经编写了return语句,所以我的对象是否会被处理?我的方法是否正确?处置是如何发生的?

c# entity-framework

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

如何查询实现接口的所有表

我已经为我的一些实体类实现了一个接口:

public partial class Order : IReportable
{
   public string TableName { get { return "Order"; } }
}

public partial class Client: IReportable
{
 public string TableName { get { return "Client"; } }
}


public interface IReportable
{
    string TableName { get; }
}
Run Code Online (Sandbox Code Playgroud)

然后我将其添加到DbContext:

public virtual DbSet<IReportable> IReportable { get; set; }
Run Code Online (Sandbox Code Playgroud)

当我尝试查询实现此接口的所有表时(如此处所示):

var result = from reportabletable in db.IReportable
             where reportabletable.TableName == table_name
            select reportabletable
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

未映射"Report.DataAccess.IReportable"类型.使用Ignore方法或NotMappedAttribute数据批注检查未明确排除类型.验证类型是否已定义为类,不是原始类型还是通用类型,并且不从EntityObject继承.

c# linq asp.net-mvc entity-framework

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

什么是userDn和LDAP术语的基础

我想在java 中LDAP使用spring来验证用户身份.我发现,对于配置LDAP弹簧,我需要的URL,用户DN,密码及基值如下所示:

urls=ldap://127.0.0.1:389
userDn=cn=Directory Manager
password=abcd
base=dc=example,dc=com
Run Code Online (Sandbox Code Playgroud)

我的问题是,这个userDnbase究竟是什么?这些意味着什么?我们需要在这个配置中指定哪个userDn值?

java spring ldap

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

C++类,调用成员函数时的分段错误

我现在正在学习C++并且一直在试验课程,以便了解它们的工作方式.我之前只用Java编写过类.

在我的代码中,我有一个类定义和一个要测试的驱动程序.在评论中我提到了什么有效,什么没有.我真的想知道为什么以一种方式实例化对象,但在其他方面我得到错误.它是编译器,make文件还是类代码?构造函数/默认构造函数?当我将我的代码与教科书中的其他代码进行比较时,我无法看到我出错的地方.

在Linux Mint 13上使用:code :: blocks 10.5.

头文件:

#ifndef ENEMY_H
#define ENEMY_H
#include <string>
using namespace std;

class Enemy
{
public:
    Enemy();
    Enemy(int, int, string); 
    ~Enemy();

    string display();

    // setter and getters:
    int getHP();
    void setHP(int);
    int getX();
    void setX(int);
    int getY();
    void setY(int);
    string getName();
    void setName(string);

private:
    int hitpoints;
    int x_pos;
    int y_pos;
    string name;
};
#endif // ENEMY_H
Run Code Online (Sandbox Code Playgroud)

成员函数定义:

#include "Enemy.h"
#include <iostream>
#include <string>


// default ctor 
Enemy::Enemy()
{
    cout << "Creating enemy with default …
Run Code Online (Sandbox Code Playgroud)

c++ class segmentation-fault

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