gpt4 book ai didi

c# - 为什么Linq-to-SQL生成的代码是错误的,但是编译的时候却没有报错

转载 作者:太空宇宙 更新时间:2023-11-03 20:30:11 28 4
gpt4 key购买 nike

我使用 Linq-to-SQL,它将为拖到其设计器的数据库表生成类。当我将 Product 表拖到设计器时,Visual Studio 将生成如下所示:

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Products")]
public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged
{
// ...
partial void OnProductIDChanging(int value);
partial void OnProductIDChanged();

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public int ProductID
{
get
{
return this._ProductID;
}
set
{
if ((this._ProductID != value))
{
this.OnProductIDChanging(value);
this.SendPropertyChanging();
this._ProductID = value;
this.SendPropertyChanged("ProductID");
this.OnProductIDChanged();
}
}
}
//...
}

OnProductIDChangingOnProductIDChanged 不是抽象方法,它们是空的,但为什么它们不给出编译错误。谢谢。

最佳答案

因为它们是 partial methods .来自 MSDN:

One part of the class contains the signature of the method. An optional implementation may be defined in the same part or another part. If the implementation is not supplied, then the method and all calls to the method are removed at compile time.

关于c# - 为什么Linq-to-SQL生成的代码是错误的,但是编译的时候却没有报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7912112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com