代码之家  ›  专栏  ›  技术社区  ›  Dark Falcon

LINQ中的多对多数据绑定

  •  1
  • Dark Falcon  · 技术社区  · 14 年前

    我已经看了一遍,还没有找到一个似乎很常见的问题的明确答案:如何在ASP.NET中对多对多关系进行双向数据绑定?

    我有以下数据库结构:

    我目前正在编写一个页面以编辑或添加用户记录。数据绑定(比如姓名和密码)很简单,但我真正需要的是它能够显示所有电话组的列表并从列表中选择一个或多个。我该怎么做?

    我尝试了一个复选框列表,但是当我可以显示电话组列表时,如何根据用户是否具有访问权限绑定每个框的选中状态?有些解决方案在复选框列表的OnDatabound事件中使用循环。如果我这样做,当选中的状态更改时,如何更新数据库?我可以使用蛮力的方法编写代码来实现这一点,但难道没有什么东西可以使这一点更简单吗?这似乎是一个常见的场景。

    更新1

    我目前正在使用devart的linqconnect,但我愿意更改。后端数据库是mysql.

    我有以下数据库结构: LINQ Diagram

    我目前正在编写一个页面以编辑或添加用户记录。数据绑定(比如姓名和密码)很简单,但我真正需要的是它能够显示所有电话组的列表并从列表中选择一个或多个。我该怎么做?

    我尝试了一个复选框列表,但是当我可以显示电话组列表时,如何根据用户是否具有访问权限绑定每个框的选中状态?有些解决方案在复选框列表的OnDatabound事件中使用循环。如果我这样做,当选中的状态更改时,如何更新数据库?我可以使用蛮力的方法编写代码来实现这一点,但难道没有什么东西可以使这一点更简单吗?这似乎是一种常见的情况。

    更新1

    我正在使用 Devart's LinqConnect 但是我愿意改变。后端数据库是mysql。

    1 回复  |  直到 14 年前
        1
  •  0
  •   John Nicholas    14 年前

    public void StoreTheUpdatedData(YourBusinessObject theBusinessObject)
    {
    var yourDataContext = new DataContext()
    var oldObject = (from i in yourDataContext.YourbusinessObjects
                    where (blah equals blah to select your item and only your item)
                    select i).First();
    
    //repeat for all properties in the object
    oldObject.Property = theBusinessObject.Property;
    
    yourDataContext.SaveChanges();
    }