0

この中に Company という名前のテーブルが 1 つあります。linq Query を使用してそのテーブルのデータにアクセスしようとしていて、次のように会社の Calss に変換しています

List<Company> companyData = (from c in dataContext.Companies 
       select new 
       {
           CompanyName =c.CompanyName,
           Address1 =c.Address1,
           Addredd2 =c.Address2,
           city=c.City.CityName,
           state =c.State.StateName,
           country =c.Country.CountryName,
           Telephone1 =c.Telephone1,
           Telephone2 =c.Telephone2,
           Mobile1 =c.Mobile1,
           Mobile2=c.Mobile2,
           Email1 =c.Email1,
           Email2 = c.Mobile2,
           Fax1=c.Fax1,
           Fax2=c.Fax2,
           TinNo=c.TinNo,
           IsGroupCompany=c.IsGroupCompany 
       }).ToList<Company>();

しかし、 ToList() have some invalid argument のようなエラーが発生し、列名を指定してリスト形式でデータを取得する方法

事前にタック

4

4 に答える 4

3

私はあなたがこれを探していると思います:

List<Company> companyData = (from c in dataContext.Companies select new Company {
  CompanyName = c.CompanyName,
  Address1 = c.Address1,
  Address2 = c.Address2,
  City = c.City,
  State = c.State,
  Country = c.Country,
  Telephone1 = c.Telephone1,
  Telephone2 = c.Telephone2,
  Mobile1 = c.Mobile1,
  Mobile2 = c.Mobile2,
  Email1 = c.Email1,
  Email2 = c.Email2,
  Fax1 = c.Fax1,
  Fax2 = c.Fax2,
  TinNo = c.TinNo,
  IsGroupCompany = c.IsGroupCompany }
  ).ToList(); 

つまり、コードは匿名型をインスタンス化していますが、Company オブジェクトのリストを作成しようとしています。したがって、代わりに Company オブジェクトをインスタンス化してください。

ただし、Company オブジェクトの別のセットからプロパティをコピーして、新しい Company オブジェクトのセットを作成する必要がない場合もあります。それが本当なら、これを行うことができます:

List<Company> companyData = dataContext.Companies.ToList();

プロパティに別の名前を付ける必要がある場合は、匿名型を使用するのが正しいです。その場合、オブジェクトはクラスvarのインスタンスではなくなるため、キーワードを使用する必要があります。Company

 var companyData = (from c in dataContext.Companies   
   select new   
   {  
       CompanyName =c.CompanyName,  
       Address1 =c.Address1,  
       Addredd2 =c.Address2,  
       city=c.City.CityName,  
       state =c.State.StateName,  
       country =c.Country.CountryName,  
       Telephone1 =c.Telephone1,  
       Telephone2 =c.Telephone2,  
       Mobile1 =c.Mobile1,  
       Mobile2=c.Mobile2,  
       Email1 =c.Email1,  
       Email2 = c.Mobile2,  
       Fax1=c.Fax1,  
       Fax2=c.Fax2,  
       TinNo=c.TinNo,  
       IsGroupCompany=c.IsGroupCompany   
   }).ToList();  
于 2012-04-13T04:51:07.403 に答える
1

DataTable を意味する場合は、次のことができます。

class Program
{
    static void Main(string[] args)
    {
        DataTable table = new DataTable();
        table.Columns.Add("name", typeof(string));
        table.Columns.Add("address", typeof(string));
        table.Rows.Add("name 1", "address 1");
        table.Rows.Add("name 1", "address 1");

        var query = table.AsEnumerable().Select(s => new Company { Name = (string)s["name"], Address = (string)s["address"] }).ToList();
    }
}

class Company
{
    public string Name { get; set; }
    public string Address { get; set; }
}
于 2012-04-13T04:54:44.667 に答える
1
List<Company> companyData = (from c in dataContext.Companies 
           select new Company() { ... }).ToList();
于 2012-04-13T04:50:02.557 に答える
0
try this :-
List<Company> companyData = (from c in dataContext.Companies 
select new Company
{
       CompanyName =c.CompanyName,
       Address1 =c.Address1,
       Addredd2 =c.Address2,
       city=c.City.CityName,
       state =c.State.StateName,
       country =c.Country.CountryName,
       Telephone1 =c.Telephone1,
       Telephone2 =c.Telephone2,
       Mobile1 =c.Mobile1,
       Mobile2=c.Mobile2,
       Email1 =c.Email1,
       Email2 = c.Mobile2,
       Fax1=c.Fax1,
       Fax2=c.Fax2,
       TinNo=c.TinNo,
       IsGroupCompany=c.IsGroupCompany 
   }).ToList();
于 2012-04-13T11:23:02.560 に答える