相关疑难解决方法(0)

返回匿名类型结果?

使用下面的简单示例,使用Linq to SQL从多个表返回结果的最佳方法是什么?

说我有两张桌子:

Dogs:   Name, Age, BreedId
Breeds: BreedId, BreedName
Run Code Online (Sandbox Code Playgroud)

我想用他们的狗归还所有的狗BreedName.我应该让所有的狗使用这样的东西没有问题:

public IQueryable<Dog> GetDogs()
{
    var db = new DogDataContext(ConnectString);
    var result = from d in db.Dogs
                 join b in db.Breeds on d.BreedId equals b.BreedId
                 select d;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但如果我想要品种的狗并尝试这个我有问题:

public IQueryable<Dog> GetDogsWithBreedNames()
{
    var db = new DogDataContext(ConnectString);
    var result = from d in db.Dogs
                 join b in db.Breeds on d.BreedId equals b.BreedId
                 select new
                        {
                            Name = d.Name,
                            BreedName = b.BreedName
                        };
    return result; …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

187
推荐指数
7
解决办法
19万
查看次数

转换为匿名类型

我今天遇到了以下问题,我想知道我的问题是否有解决方案.

我的想法是构建匿名类并将其用作WinForm BindingSource的数据源:

public void Init()
{
    var option1 = new
                  {
                      Id = TemplateAction.Update,
                      Option = "Update the Templates",
                      Description = "Bla bla 1."
                  };

    var option2 = new
                  {
                      Id = TemplateAction.Download,
                      Option = "Download the Templates",
                      Description = "Bla bla 2."
                  };

    var list = new[] {option1, option2}.ToList();

    bsOptions.DataSource = list; // my BindingSource

    // cboTemplates is a ComboBox
    cboTemplates.DataSource = bsOptions; 
    cboTemplates.ValueMember = "Id";
    cboTemplates.DisplayMember = "Option";

    lblInfoTemplates.DataBindings.Add("Text", bsOptions, "Description");
}
Run Code Online (Sandbox Code Playgroud)

到目前为止工作正常.

我遇到的问题是从BindingSource的"Current"属性中获取Id,因为我无法将其强制转换为匿名类型:

private void cmdOK_Click(object …
Run Code Online (Sandbox Code Playgroud)

c# anonymous-types anonymous-class

49
推荐指数
4
解决办法
4万
查看次数

访问C#匿名类型对象

如何访问其声明范围之外的匿名类型的对象?

例如

void FuncB()
{
var obj = FuncA();
Console.WriteLine(obj.Name);
}

??? FuncA()
{
var a = (from e in DB.Entities
where e.Id == 1
select new {Id = e.Id, Name = e.Name}).FirstOrDefault();

return a;
}
Run Code Online (Sandbox Code Playgroud)

c# anonymous-types

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

c# ×3

anonymous-types ×2

anonymous-class ×1

linq ×1

linq-to-sql ×1