Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;不支持指定的方法";实体框架内_C#_.net_Entity Framework_Entity Framework 4_Exception Handling - Fatal编程技术网

C# &引用;不支持指定的方法";实体框架内

C# &引用;不支持指定的方法";实体框架内,c#,.net,entity-framework,entity-framework-4,exception-handling,C#,.net,Entity Framework,Entity Framework 4,Exception Handling,这是我的实体类: public partial class NerdDinnerEntities : ObjectContext { public NerdDinnerEntities(string connectionString) : base(connectionString, "NerdDinnerEntities") { try { ObjectContext oc = new ObjectCont

这是我的实体类:

public partial class NerdDinnerEntities : ObjectContext
{
    public NerdDinnerEntities(string connectionString)
        : base(connectionString, "NerdDinnerEntities")
    {
        try
        {
            ObjectContext oc = new ObjectContext(connectionString);

           oc.Connection.ChangeDatabase("NERDDINNER1");
           oc.AcceptAllChanges();
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
        catch (Exception ex) { }
    }

    partial void OnContextCreated();

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    public ObjectSet<Dinner> Dinners
    {
        get
        {
            if ((_Dinners == null))
            {
                _Dinners = base.CreateObjectSet<Dinner>("Dinners");
            }
            return _Dinners;
        }
    }
    private ObjectSet<Dinner> _Dinners;

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    public ObjectSet<RSVP> RSVPs
    {
        get
        {
            if ((_RSVPs == null))
            {
                _RSVPs = base.CreateObjectSet<RSVP>("RSVPs");
            }
            return _RSVPs;
        }
    }

    private ObjectSet<RSVP> _RSVPs;

    /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    public ObjectSet<sysdiagram> sysdiagrams
    {
        get
        {
            if ((_sysdiagrams == null))
            {
                _sysdiagrams = base.CreateObjectSet<sysdiagram>("sysdiagrams");
            }
            return _sysdiagrams;
        }
    }

    private ObjectSet<sysdiagram> _sysdiagrams;

    /// <summary>
    /// Deprecated Method for adding a new object to the Dinners EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
    /// </summary>
    public void AddToDinners(Dinner dinner)
    {
        base.AddObject("Dinners", dinner);
    }

    /// <summary>
    /// Deprecated Method for adding a new object to the RSVPs EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
    /// </summary>
    public void AddToRSVPs(RSVP rSVP)
    {
        base.AddObject("RSVPs", rSVP);
    }

    /// <summary>
    /// Deprecated Method for adding a new object to the sysdiagrams EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
    /// </summary>
    public void AddTosysdiagrams(sysdiagram sysdiagram)
    {
        base.AddObject("sysdiagrams", sysdiagram);
    }
}

不支持EntityConnection的ChangeDatabase方法()


如果要将数据上下文用于另一个数据库,请创建另一个连接字符串,并使用新的连接字符串创建数据上下文实例

如果在中查找文档,您将看到该方法实际上不受支持。它必须是未来改进或其他事情的占位符

要为希望在运行时更改数据库的用户展开:

1.在设置中创建一个条目,以替代app.config中的默认条目。将用户名、密码、目录名(数据库名)、服务器等具体信息提取到其他设置条目中

<Setting Name="EntityConnectionString2" Type="System.String" Scope="Application">
  <Value Profile="(Default)">metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source={0};initial catalog={1};persist security info=True;user id={2};password={3};encrypt=True;trustservercertificate=True;multipleactiveresultsets=True;App=EntityFramework"</Value>
</Setting>

3.要在运行时进行更改,您可以使用不同的目录名称以相同的方式创建不同的对象,或者使用不同的目录名称处置并重新创建db对象

你的构造函数中的代码看起来很奇怪。如何用数据上下文实例创建另一个连接字符串…你能在web.config中发送一些linksDuplicate连接字符串来指导我吗,更改其名称并将Database=NERDDINNER更改为其值中的其他内容意味着需要添加新的配置字符串,以更改连接字符串的名称(name属性)为避免名称重复,您可以将属性名称从NerdInRenetities更改为NerdInRenetities 1 den如何在编码中选择特定数据库当前数据库打开时无法更改?我有一个方法,可以在何处添加设置标记您可以通过两种方式添加设置,我已经展示了在app.config中创建的XML,但是添加它的最佳方式是在project properties->Settingscan我将它添加到nerdInnerrenties实例所在的位置called@GowthamanSS请重读这3点。不幸的是,StackOverflow不能像论坛一样使用。目标是创建一个可自定义的连接字符串,以便在必要时可以使用不同的数据库。在pastie.org上的文件中,您正在使用ConfigurationManager。通过以下第2点访问设置。您不能在EF构造函数中使用配置中的连接字符串。比较点1连接字符串和正在加载的配置中的连接字符串。
oc.Connection.ChangeDatabase("NERDDINNER1");
<Setting Name="EntityConnectionString2" Type="System.String" Scope="Application">
  <Value Profile="(Default)">metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source={0};initial catalog={1};persist security info=True;user id={2};password={3};encrypt=True;trustservercertificate=True;multipleactiveresultsets=True;App=EntityFramework"</Value>
</Setting>
var settings = Properties.Settings.Default;  
string constring = string.Format(settings.EntityConnectionString2, settings.Server, settings.Database, settings.User, settings.Password);
NerdDinnerEntities db = new NerdDinnerEntities (constring);