c# - 添加对象不起作用

标签 c# entity-framework .net-3.5

在带有 EF.net (3.5) 应用程序中,我使用以下代码插入新记录,但 AddObject() 不起作用.

我很惊讶,因为这是第一次发生,甚至在我当时在 EF 工作之前它就可以工作了。

我的代码

    public void NewAirline(string name, string sname, string remark)
    {
        GsecEntities e = new GsecEntities();
        tbAirLine al = new tbAirLine()
        {
            Name = name,
            Remark = remark,
            ShortName = sname
        };
        e.tbAirLines.AddObject(al);
        e.SaveChanges();
    }

作为建议,我在这里编写 tbAirline 的代码

    public partial class GsecEntities : global::System.Data.Objects.ObjectContext
{
    /// <summary>
    /// Initializes a new GsecEntities object using the connection string found in the 'GsecEntities' section of the application configuration file.
    /// </summary>
    public GsecEntities() : 
            base("name=GsecEntities", "GsecEntities")
    {
        this.OnContextCreated();
    }
    /// <summary>
    /// Initialize a new GsecEntities object.
    /// </summary>
    public GsecEntities(string connectionString) : 
            base(connectionString, "GsecEntities")
    {
        this.OnContextCreated();
    }
    /// <summary>
    /// Initialize a new GsecEntities object.
    /// </summary>
    public GsecEntities(global::System.Data.EntityClient.EntityConnection connection) : 
            base(connection, "GsecEntities")
    {
        this.OnContextCreated();
    }
    partial void OnContextCreated();
    /// <summary>
    /// There are no comments for tbAirLines in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbAirLine> tbAirLines
    {
        get
        {
            if ((this._tbAirLines == null))
            {
                this._tbAirLines = base.CreateQuery<tbAirLine>("[tbAirLines]");
            }
            return this._tbAirLines;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbAirLine> _tbAirLines;
    /// <summary>
    /// There are no comments for tbBanks in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbBank> tbBanks
    {
        get
        {
            if ((this._tbBanks == null))
            {
                this._tbBanks = base.CreateQuery<tbBank>("[tbBanks]");
            }
            return this._tbBanks;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbBank> _tbBanks;
    /// <summary>
    /// There are no comments for tbCities in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbCity> tbCities
    {
        get
        {
            if ((this._tbCities == null))
            {
                this._tbCities = base.CreateQuery<tbCity>("[tbCities]");
            }
            return this._tbCities;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbCity> _tbCities;
    /// <summary>
    /// There are no comments for tbCommodities in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbCommodity> tbCommodities
    {
        get
        {
            if ((this._tbCommodities == null))
            {
                this._tbCommodities = base.CreateQuery<tbCommodity>("[tbCommodities]");
            }
            return this._tbCommodities;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbCommodity> _tbCommodities;
    /// <summary>
    /// There are no comments for tbCountries in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbCountry> tbCountries
    {
        get
        {
            if ((this._tbCountries == null))
            {
                this._tbCountries = base.CreateQuery<tbCountry>("[tbCountries]");
            }
            return this._tbCountries;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbCountry> _tbCountries;
    /// <summary>
    /// There are no comments for tbFlights in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbFlight> tbFlights
    {
        get
        {
            if ((this._tbFlights == null))
            {
                this._tbFlights = base.CreateQuery<tbFlight>("[tbFlights]");
            }
            return this._tbFlights;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbFlight> _tbFlights;
    /// <summary>
    /// There are no comments for tbGrpCommodities in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbGrpCommodity> tbGrpCommodities
    {
        get
        {
            if ((this._tbGrpCommodities == null))
            {
                this._tbGrpCommodities = base.CreateQuery<tbGrpCommodity>("[tbGrpCommodities]");
            }
            return this._tbGrpCommodities;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbGrpCommodity> _tbGrpCommodities;
    /// <summary>
    /// There are no comments for tbPersons in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbPerson> tbPersons
    {
        get
        {
            if ((this._tbPersons == null))
            {
                this._tbPersons = base.CreateQuery<tbPerson>("[tbPersons]");
            }
            return this._tbPersons;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbPerson> _tbPersons;
    /// <summary>
    /// There are no comments for tbPersonTypes in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public global::System.Data.Objects.ObjectQuery<tbPersonType> tbPersonTypes
    {
        get
        {
            if ((this._tbPersonTypes == null))
            {
                this._tbPersonTypes = base.CreateQuery<tbPersonType>("[tbPersonTypes]");
            }
            return this._tbPersonTypes;
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private global::System.Data.Objects.ObjectQuery<tbPersonType> _tbPersonTypes;
    /// <summary>
    /// There are no comments for tbAirLines in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbAirLines(tbAirLine tbAirLine)
    {
        base.AddObject("tbAirLines", tbAirLine);
    }
    /// <summary>
    /// There are no comments for tbBanks in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbBanks(tbBank tbBank)
    {
        base.AddObject("tbBanks", tbBank);
    }
    /// <summary>
    /// There are no comments for tbCities in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbCities(tbCity tbCity)
    {
        base.AddObject("tbCities", tbCity);
    }
    /// <summary>
    /// There are no comments for tbCommodities in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbCommodities(tbCommodity tbCommodity)
    {
        base.AddObject("tbCommodities", tbCommodity);
    }
    /// <summary>
    /// There are no comments for tbCountries in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbCountries(tbCountry tbCountry)
    {
        base.AddObject("tbCountries", tbCountry);
    }
    /// <summary>
    /// There are no comments for tbFlights in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbFlights(tbFlight tbFlight)
    {
        base.AddObject("tbFlights", tbFlight);
    }
    /// <summary>
    /// There are no comments for tbGrpCommodities in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbGrpCommodities(tbGrpCommodity tbGrpCommodity)
    {
        base.AddObject("tbGrpCommodities", tbGrpCommodity);
    }
    /// <summary>
    /// There are no comments for tbPersons in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbPersons(tbPerson tbPerson)
    {
        base.AddObject("tbPersons", tbPerson);
    }
    /// <summary>
    /// There are no comments for tbPersonTypes in the schema.
    /// </summary>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public void AddTotbPersonTypes(tbPersonType tbPersonType)
    {
        base.AddObject("tbPersonTypes", tbPersonType);
    }
}
/// <summary>
/// There are no comments for GsecModel.tbAirLine in the schema.
/// </summary>
/// <KeyProperties>
/// Id
/// </KeyProperties>
[global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="GsecModel", Name="tbAirLine")]
[global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]
[global::System.Serializable()]
public partial class tbAirLine : global::System.Data.Objects.DataClasses.EntityObject
{
    /// <summary>
    /// Create a new tbAirLine object.
    /// </summary>
    /// <param name="id">Initial value of Id.</param>
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public static tbAirLine CreatetbAirLine(long id)
    {
        tbAirLine tbAirLine = new tbAirLine();
        tbAirLine.Id = id;
        return tbAirLine;
    }
    /// <summary>
    /// There are no comments for property Id in the schema.
    /// </summary>
    [global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [global::System.Runtime.Serialization.DataMemberAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public long Id
    {
        get
        {
            return this._Id;
        }
        set
        {
            this.OnIdChanging(value);
            this.ReportPropertyChanging("Id");
            this._Id = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value);
            this.ReportPropertyChanged("Id");
            this.OnIdChanged();
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private long _Id;
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnIdChanging(long value);
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnIdChanged();
    /// <summary>
    /// There are no comments for property Name in the schema.
    /// </summary>
    [global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
    [global::System.Runtime.Serialization.DataMemberAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public string Name
    {
        get
        {
            return this._Name;
        }
        set
        {
            this.OnNameChanging(value);
            this.ReportPropertyChanging("Name");
            this._Name = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, true);
            this.ReportPropertyChanged("Name");
            this.OnNameChanged();
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private string _Name;
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnNameChanging(string value);
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnNameChanged();
    /// <summary>
    /// There are no comments for property ShortName in the schema.
    /// </summary>
    [global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
    [global::System.Runtime.Serialization.DataMemberAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public string ShortName
    {
        get
        {
            return this._ShortName;
        }
        set
        {
            this.OnShortNameChanging(value);
            this.ReportPropertyChanging("ShortName");
            this._ShortName = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, true);
            this.ReportPropertyChanged("ShortName");
            this.OnShortNameChanged();
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private string _ShortName;
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnShortNameChanging(string value);
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnShortNameChanged();
    /// <summary>
    /// There are no comments for property Remark in the schema.
    /// </summary>
    [global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
    [global::System.Runtime.Serialization.DataMemberAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    public string Remark
    {
        get
        {
            return this._Remark;
        }
        set
        {
            this.OnRemarkChanging(value);
            this.ReportPropertyChanging("Remark");
            this._Remark = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, true);
            this.ReportPropertyChanged("Remark");
            this.OnRemarkChanged();
        }
    }
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    private string _Remark;
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnRemarkChanging(string value);
    [global::System.CodeDom.Compiler.GeneratedCode("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
    partial void OnRemarkChanged();
}

它给出以下错误

Error 1 'System.Data.Objects.ObjectQuery' does not contain a definition for 'AddObject' and no extension method 'AddObject' accepting a first argument of type 'System.Data.Objects.ObjectQuery' could be found (are you missing a using directive or an assembly reference?)

最佳答案

.NET 版本 3.5 公开 ObjectQuery<T>ObjectSet<T>在.NET 4.0 中。因此,您需要使用 e.AddTotbAirLines(tbAirLine)e.AddObject("tbAirLines", tbAirLine) 。两者都可以在提交的生成代码的第 185 行找到。在 .NET 4.0 中,他们决定像您在问题中展示的那样实现它。

关于c# - 添加对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15038319/

相关文章:

c# - 如何单击展开按钮以使用 Selenium Webdriver C# 打开一个部分

c# - 向 DbGeography 添加距离和方位以获得新点

c# - 多线程 API 应用程序中的 EF 核心 DbContext

c# - 使用webservice每天只动态执行一次方法

c# - 如何将数据集添加到报表中 C#

c# - 元组故障列表

C#相当于C `system()`标准库函数

entity-framework - ViewModels 和 MVC 中与 Entity Framework 的一对多关系?

c# - 具有自定义字符映射的 Levenshtein 算法

C# 如何确保用户提供线程安全对象来运行