加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

.net – Linq到Sql很多加入表

发布时间:2020-12-12 08:43:10 所属栏目:MsSql教程 来源:网络整理
导读:我是一个有经验的Rails开发人员,我以为我会尝试ASP.NET的MVC版本.在这样做的时候,我也决定试试 Linq- Sql … 我对Linq- Sql处理连接的方式感到有些困惑. 我的模式的一个简单的例子是: 图书: ID 标题 类别: ID 名称 books_categories: book_id CATEGORY_ID
我是一个有经验的Rails开发人员,我以为我会尝试ASP.NET的MVC版本.在这样做的时候,我也决定试试 Linq-> Sql …

我对Linq-> Sql处理连接的方式感到有些困惑.

我的模式的一个简单的例子是:

图书:
ID
标题

类别:
ID
名称

books_categories:
book_id
CATEGORY_ID

只需将这些表拖动到.dbml文件就好像不行.我在Book类book_categories上获得一个属性,我期望的是一个可以迭代并直接获取Category类的属性.

现在我必须做一些非常错误的事情

foreach (books_categories bc in book.books_categories)
        {
            category_names.Add(bc.Category.category.Trim());
        }

[回应接受答复]
我勉强接受“写你自己的胶水代码”的答案.在继续研究Linq-> Sql之后,我发现显然缓慢地放弃了(更为强大的IMO)实体框架. EF仍然允许一个人使用LINQ查询,并做出一个体面的工作,找出像Ruby的ActiveRecord之类的关系.

解决方法

使用Book的部分类实现,并为类别及其属性添加适当的方法.具有属性前端的Books_Categories属性(您可以使其具有私有的可见性,以强制实现通过您的Categories属性).
public partial class Books
{
    public IEnumerable<string> CategoryNames
    {
       get
       {  
            return this.Books_Categories
                       .Select( bc => bc.Category.category.Trim() );
       }
    }

    public void AddCategory( Category category )
    {
       this.Books_Categories.Add( new Book_Category
                                  {
                                      Category = category,Book = this
                                  } );
    }

    public void RemoveCategory( Category category )
    {
       var bc = this.Book_Categories
                    .Where( c => c.Category == category )
                    .SingleOrDefault();
       this.Books_Categories.Remove( bc );
    }
}

显然,你需要添加一些错误/边界检查等,但是你会得到这个想法.

我会给你这不是理想的,但至少你有灵活性来确定它是如何工作的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读