c# - 对象数据源连接

标签 c# asp.net objectdatasource

我正在尝试完成 Pluralsights ASP.NET Webforms (c#) 演示,无法弄清楚为什么我的 app_code 文件夹中的类在尝试创建新的数据源连接时不会显示在我的 ObjectDataSource 下拉列表中。我已经坚持了将近一个半星期,并且是编程的新手,所以在搜索有用的文档后不理解所有的行话。我不知道在哪里实现什么。

这是我的 BAL.cs 类的代码,位于我的 App_Code 文件夹中,我有一个 Data 文件夹,其中包含一个名为 Northwind 的 Linq 到类连接。

// Here is my code for BAL.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Globalization;
using Northwind;
 public class BAL
{
    public List<String> GetCountries()
    {
        using (var context = new NorthwindDataContext())
        {
            return (from c in context.Customers
                    select c.Country).Distinct().ToList();
        }
    }

    public List<Customer> GetCustomersByCountry(string country)
    {
        using (var context = new NorthwindDataContext())
        {
            return (from c in context.Customers
                    where c.Country == country
                    select c).ToList();
        }
    }

    public Customer GetCustomer(string custID)
    {
        using (var context = new NorthwindDataContext())
        {
            return (from c in context.Customers
                    where c.CustomerID == custID
                    select c).SingleOrDefault();
        }
    }
}
}

现在是我的 Northwind.dbml 文件的 designer.cs

#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.17929
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Northwind
{
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;


[global::System.Data.Linq.Mapping.DatabaseAttribute(Name="Northwind")]
public partial class NorthwindDataContext : System.Data.Linq.DataContext
{

    private static System.Data.Linq.Mapping.MappingSource mappingSource = new 
   AttributeMappingSource();

#region Extensibility Method Definitions
partial void OnCreated();
partial void InsertCustomer(Customer instance);
partial void UpdateCustomer(Customer instance);
partial void DeleteCustomer(Customer instance);
#endregion

    public NorthwindDataContext() : 
            base
    (global::System.Configuration.ConfigurationManager.ConnectionStrings
   ["NorthwindConnectionString"].ConnectionString, mappingSource)
    {
        OnCreated();
    }

    public NorthwindDataContext(string connection) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

    public NorthwindDataContext(System.Data.IDbConnection connection) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

    public NorthwindDataContext(string connection, 
   System.Data.Linq.Mapping.MappingSource mappingSource) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

    public NorthwindDataContext(System.Data.IDbConnection connection, 
  System.Data.Linq.Mapping.MappingSource mappingSource) : 
            base(connection, mappingSource)
    {
        OnCreated();
    }

    public System.Data.Linq.Table<Customer> Customers
    {
        get
        {
            return this.GetTable<Customer>();
        }
    }
}

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Customers")]
public partial class Customer : INotifyPropertyChanging, INotifyPropertyChanged
{

    private static PropertyChangingEventArgs emptyChangingEventArgs = new 
      PropertyChangingEventArgs(String.Empty);

    private string _CustomerID;

    private string _CompanyName;

    private string _ContactName;

    private string _ContactTitle;

    private string _Address;

    private string _City;

    private string _Region;

    private string _PostalCode;

    private string _Country;

    private string _Phone;

    private string _Fax;

    private string _Image;

#region Extensibility Method Definitions
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnCustomerIDChanging(string value);
partial void OnCustomerIDChanged();
partial void OnCompanyNameChanging(string value);
partial void OnCompanyNameChanged();
partial void OnContactNameChanging(string value);
partial void OnContactNameChanged();
partial void OnContactTitleChanging(string value);
partial void OnContactTitleChanged();
partial void OnAddressChanging(string value);
partial void OnAddressChanged();
partial void OnCityChanging(string value);
partial void OnCityChanged();
partial void OnRegionChanging(string value);
partial void OnRegionChanged();
partial void OnPostalCodeChanging(string value);
partial void OnPostalCodeChanged();
partial void OnCountryChanging(string value);
partial void OnCountryChanged();
partial void OnPhoneChanging(string value);
partial void OnPhoneChanged();
partial void OnFaxChanging(string value);
partial void OnFaxChanged();
partial void OnImageChanging(string value);
partial void OnImageChanged();
#endregion

    public Customer()
    {
        OnCreated();
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CustomerID", 
      DbType="NChar(5) NOT NULL", CanBeNull=false, IsPrimaryKey=true)]
    public string CustomerID
    {
        get
        {
            return this._CustomerID;
        }
        set
        {
            if ((this._CustomerID != value))
            {
                this.OnCustomerIDChanging(value);
                this.SendPropertyChanging();
                this._CustomerID = value;
                this.SendPropertyChanged("CustomerID");
                this.OnCustomerIDChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompanyName", 
    DbType="NVarChar(40) NOT NULL", CanBeNull=false)]
    public string CompanyName
    {
        get
        {
            return this._CompanyName;
        }
        set
        {
            if ((this._CompanyName != value))
            {
                this.OnCompanyNameChanging(value);
                this.SendPropertyChanging();
                this._CompanyName = value;
                this.SendPropertyChanged("CompanyName");
                this.OnCompanyNameChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContactName", 
   DbType="NVarChar(30)")]
    public string ContactName
    {
        get
        {
            return this._ContactName;
        }
        set
        {
            if ((this._ContactName != value))
            {
                this.OnContactNameChanging(value);
                this.SendPropertyChanging();
                this._ContactName = value;
                this.SendPropertyChanged("ContactName");
                this.OnContactNameChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContactTitle", 
  DbType="NVarChar(30)")]
    public string ContactTitle
    {
        get
        {
            return this._ContactTitle;
        }
        set
        {
            if ((this._ContactTitle != value))
            {
                this.OnContactTitleChanging(value);
                this.SendPropertyChanging();
                this._ContactTitle = value;
                this.SendPropertyChanged("ContactTitle");
                this.OnContactTitleChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", 
     DbType="NVarChar(60)")]
    public string Address
    {
        get
        {
            return this._Address;
        }
        set
        {
            if ((this._Address != value))
            {
                this.OnAddressChanging(value);
                this.SendPropertyChanging();
                this._Address = value;
                this.SendPropertyChanged("Address");
                this.OnAddressChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_City", 
    DbType="NVarChar(15)")]
    public string City
    {
        get
        {
            return this._City;
        }
        set
        {
            if ((this._City != value))
            {
                this.OnCityChanging(value);
                this.SendPropertyChanging();
                this._City = value;
                this.SendPropertyChanged("City");
                this.OnCityChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Region", 
    DbType="NVarChar(15)")]
    public string Region
    {
        get
        {
            return this._Region;
        }
        set
        {
            if ((this._Region != value))
            {
                this.OnRegionChanging(value);
                this.SendPropertyChanging();
                this._Region = value;
                this.SendPropertyChanged("Region");
                this.OnRegionChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PostalCode", 
        DbType="NVarChar(10)")]
    public string PostalCode
    {
        get
        {
            return this._PostalCode;
        }
        set
        {
            if ((this._PostalCode != value))
            {
                this.OnPostalCodeChanging(value);
                this.SendPropertyChanging();
                this._PostalCode = value;
                this.SendPropertyChanged("PostalCode");
                this.OnPostalCodeChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Country", 
        DbType="NVarChar(15)")]
    public string Country
    {
        get
        {
            return this._Country;
        }
        set
        {
            if ((this._Country != value))
            {
                this.OnCountryChanging(value);
                this.SendPropertyChanging();
                this._Country = value;
                this.SendPropertyChanged("Country");
                this.OnCountryChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Phone", 
  DbType="NVarChar(24)")]
    public string Phone
    {
        get
        {
            return this._Phone;
        }
        set
        {
            if ((this._Phone != value))
            {
                this.OnPhoneChanging(value);
                this.SendPropertyChanging();
                this._Phone = value;
                this.SendPropertyChanged("Phone");
                this.OnPhoneChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Fax", 
      DbType="NVarChar(24)")]
    public string Fax
    {
        get
        {
            return this._Fax;
        }
        set
        {
            if ((this._Fax != value))
            {
                this.OnFaxChanging(value);
                this.SendPropertyChanging();
                this._Fax = value;
                this.SendPropertyChanged("Fax");
                this.OnFaxChanged();
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Image", 
     DbType="NVarChar(50)")]
    public string Image
    {
        get
        {
            return this._Image;
        }
        set
        {
            if ((this._Image != value))
            {
                this.OnImageChanging(value);
                this.SendPropertyChanging();
                this._Image = value;
                this.SendPropertyChanged("Image");
                this.OnImageChanged();
            }
        }
    }

    public event PropertyChangingEventHandler PropertyChanging;

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void SendPropertyChanging()
    {
        if ((this.PropertyChanging != null))
        {
            this.PropertyChanging(this, emptyChangingEventArgs);
        }
    }

    protected virtual void SendPropertyChanged(String propertyName)
    {
        if ((this.PropertyChanged != null))
        {
            this.PropertyChanged(this, new       
     PropertyChangedEventArgs           (propertyName));
        }
    }
}
}
 #pragma warning restore 1591

最佳答案

如果它们没有出现在 GUI 中,请尝试手动指定哪些方法与哪些操作相关。

例如:

[DataObjectMethod(DataObjectMethodType.Select, true)]
[DataObjectMethod(DataObjectMethodType.Insert, true)]
[DataObjectMethod(DataObjectMethodType.Update, true)]
[DataObjectMethod(DataObjectMethodType.Delete, true)]

More info here .

关于c# - 对象数据源连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494862/

相关文章:

c# - 使用 XamlReader 创建的 DataTemplate 无法找到 StaticResources

c# - using 指令究竟做了什么?

javascript - Angular JS 与 ASP.NET 母版页

c# - 了解 ObjectDataSource 和选择参数

asp.net - ASP.NET 对象数据源问题(GetData 方法)

asp.net - ObjectDataSource 没有要插入的值

c# - OS X 上的 C# 入门

c# - 为什么 HttpResponseMessage 不显示其内容?

asp.net - CSS - 为图像标签设置标题样式

c# - Union 或 Concat 中的类型不能用层次结构构造