在 .net(3.5)应用 EF 的应用中,我使用以下代码插入新记录,但 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();
}
并给出以下错误
错误1'System.Data.Objects.ObjectQuery'不包含'AddObject'的定义,并且没有扩展方法'AddObject'接受类型'System.Data.Objects.ObjectQuery'的第一个参数可以找到(是你错过了使用指令或程序集引用?)
答案 0 :(得分:3)
.NET 3.5版在.NET 4.0中公开了ObjectQuery<T>
与ObjectSet<T>
。因此,您需要使用e.AddTotbAirLines(tbAirLine)
或e.AddObject("tbAirLines", tbAirLine)
。两者都可以在提交的生成代码的第185行找到。在.NET 4.0中,他们决定像你在问题中展示的那样实现它。