【问题标题】:Why am I getting this error after updating the VS Project为什么更新 VS 项目后出现此错误
【发布时间】:2016-04-01 18:11:47
【问题描述】:

我的任务是将 ASP.net Visual Studio 2005 项目更新到 Visual Studio 2013。最初的项目使用了一个名为 Subsonic 2.2 版的产品和几个 Telerik 控件。我已经能够解决 Telerik DLL 问题,但无法找出这个错误的问题,这似乎是 Subsonic 生成的代码中的问题。

下面的代码导致了这个错误“'PSD.Tbl_Division'的部分声明不能指定不同的基数”

using System; 
using System.Text; 
using System.Data;
/// <summary>
/// Strongly-typed collection for the Tbl_Division class.
/// </summary>
[Serializable]
public partial class Tbl_DivisionCollection : ActiveList<Tbl_Division, Tbl_DivisionCollection>
{      
    public Tbl_DivisionCollection() {}

    /// <summary>
    /// Filters an existing collection based on the set criteria. This is an in-memory filter
    /// Thanks to developingchris for this!
    /// </summary>
    /// <returns>Tbl_DivisionCollection</returns>
    public Tbl_DivisionCollection Filter()
    {
        for (int i = this.Count - 1; i > -1; i--)
        {
            Tbl_Division o = this[i];
            foreach (SubSonic.Where w in this.wheres)
            {
                bool remove = false;
                System.Reflection.PropertyInfo pi = o.GetType().GetProperty(w.ColumnName);
                if (pi.CanRead)
                {
                    object val = pi.GetValue(o, null);
                    switch (w.Comparison)
                    {
                        case SubSonic.Comparison.Equals:
                            if (!val.Equals(w.ParameterValue))
                            {
                                remove = true;
                            }
                            break;
                    }
                }
                if (remove)
                {
                    this.Remove(o);
                    break;
                }
            }
        }
        return this;
    }


}
/// <summary>
/// This is an ActiveRecord class which wraps the Tbl_Division table.
/// </summary>
[Serializable]
public partial class Tbl_Division : ActiveRecord<Tbl_Division>, IActiveRecord
{

我是一名初级程序员,我花了很多时间阅读有关此错误消息的帖子,但我无法全神贯注于我正在阅读的内容并将其与我的情况联系起来。

谁能解释我为什么会收到这个错误,如果可能的话,为什么它会在 Visual Studio 2005 中工作,但在 Visual Studio 2013 中不能工作。另外,我该如何纠正这种情况

谢谢 佩里

【问题讨论】:

    标签: c# asp.net subsonic subsonic2.2


    【解决方案1】:

    似乎 Tbl_Division 类在两个部分类中声明。这里显示的是 ActiveRecord 的子类...

    public partial class Tbl_Division : ActiveRecord<Tbl_Division>, IActiveRecord
    

    ...这似乎有点奇怪,但我想这是可行的。另一个部分类必须在其基类方面说一些不同的东西。因此,根据给出的错误,这可能是您的问题。如果没有看到您的其他部分类定义,则无法确定。

    【讨论】:

    • 抱歉只是想澄清一下你是说我应该显示所有代码
    • 如果可以看到 Tbl_Division 的每个部分类定义的初始行,而不仅仅是上面显示的那一行。或者您可以自己检查一下,看看基类定义是否有差异。我已经在我的答案中添加了一个。看看另一个会很有用。
    • e 是其他类的第一行代码 public partial class Tbl_DivisionCollection : ActiveList
    • 那就这样吧。我的回答是正确的。它们具有完全不同的基类定义。这就是您收到错误的原因。
    • 好吧,我能解决这个问题吗?想知道为什么它在 Visual Studio 2005 中起作用
    猜你喜欢
    • 2022-12-29
    • 2021-08-11
    • 2014-01-28
    • 2012-08-22
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    相关资源
    最近更新 更多