【问题标题】:Strongly Typed Data Context Must Declare a Body Error强类型数据上下文必须声明正文错误
【发布时间】:2012-08-02 14:35:28
【问题描述】:

收到此错误:

Error   4   'ZoneUpdates.Models.PgeDataContext.PgeDataContext(string, System.Data.Linq.Mapping.MappingSource)' must declare a body because it is not marked abstract, extern, or partial    C:\Code\ZoneUpdates\ZoneUpdates\Models\PgeDataContext.cs    18  16  ZoneUpdates
Error   6   'ZoneUpdates.Models.ZoneObject.SendPropertyChanged(string)' must declare a body because it is not marked abstract, extern, or partial   C:\Code\ZoneUpdates\ZoneUpdates\Models\PgeDataContext.cs    42  32  ZoneUpdates

这四个类之间基本上有 13 个错误(以下显示两个)。

我使用的是 4.0,我基本上是从另一个项目中复制并粘贴了这段代码,它可以按预期工作。我尝试将课程更改为部分课程,但无济于事。任何指针表示赞赏。

[Database(Name = "Pge_Dev")]
public class PgeDataContext : DataContext
{
    public PgeDataContext(IDbConnection connection);
    public PgeDataContext(string dsn);
    public PgeDataContext(
              IDbConnection connection, 
              System.Data.Linq.Mapping.MappingSource mappingSource);
    public PgeDataContext(
              string connection, 
              System.Data.Linq.Mapping.MappingSource mappingSource);

    public Table<ZoneObject> ZoneObject { get; set; }
    public Table<ZoneObjType> ZoneObjType { get; set; }
    public Table<ZoneTypeBridge> ZoneTypeBridge { get; set; }
}

[Table(Name = "dbo.ZoneObject")]
public class ZoneObject : INotifyPropertyChanging, INotifyPropertyChanged
{
    public ZoneObject();

    [Column(Storage = "ID", DbType = "Int NOT NULL")]
    public int ID { get; set; }
    [Column(Storage = "Name", DbType = "nvarchar(30)")]
    public int Name { get; set; }
    [Column(Storage = "Value", DbType = "bigint")]
    public int Value { get; set; }
    [Column(Storage = "CancurrencyID", DbType = "Int NOT NULL")]
    public int ConcurrencyID { get; set; }

    public event PropertyChangedEventHandler PropertyChanged;
    public event PropertyChangingEventHandler PropertyChanging;

    protected virtual void SendPropertyChanged(string propertyName);
    protected virtual void SendPropertyChanging();
}

【问题讨论】:

    标签: c# .net datacontext sqlconnection


    【解决方案1】:

    错误示例

    没有主体的构造函数

    public PgeDataContext(IDbConnection connection);
    

    => 你必须声明一个主体

    public PgeDataContext(IDbConnection connection){ /*blibli*/ }
    

    没有主体的方法

    protected virtual void SendPropertyChanged(string propertyName);

    =>您必须为非抽象、外部或部分方法声明一个主体,如您的错误消息中所述

    protected virtual void SendPropertyChanged(string propertyName) { /*blabla*/ }

    【讨论】:

    • 这显然是正确的答案,我只是在寻找是否有其他可能让我做的事情,因为如前所述,这是从另一个可行的项目中获取的。可能还有更多工作要做,但我尽可能多地深入研究,这似乎是所有使用的。
    • @mgaughan:所写的代码是无效的 C# 并且永远不会工作。但是,代码是否有可能是从abstract 类复制的?在这种情况下,它会更接近有效。
    • @DanPuzey 这正是我想要在这里学习的。我认为这是某种继承或抽象,但我找不到明确的说法。谢谢。
    猜你喜欢
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    相关资源
    最近更新 更多