Linq to SQL: Как я могу обновить форму, которая содержит данные из нескольких таблиц? - PullRequest
1 голос
/ 04 февраля 2010

Возьмем простой пример:

У меня есть таблица клиентов и таблица счетов с полем customerID. Я хочу формировать представление, которое может обновлять данные в обеих таблицах.

FormView:

First Name (Customer)
Last Name (Customer)
Address (Customer)
AccountRate (Account)

Как я могу сделать это с Linq to SQL? Должен ли я просто использовать операторы Bind, такие как Bind ("Account.AccountRate")? Или я должен совершить магию в событии ItemUpdating или подобном?

Ответы [ 3 ]

1 голос
/ 05 февраля 2010

Я никогда не работаю с linq to SQL, но в Entity Framework мне нужно сделать что-то вроде этого:

protected void ObjectDataSource_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        // Declaring the Entity context 
        AvalonEntities db = new AvalonEntities();

        // In updating méthod of a ObjectDataSource the "e" arg is my customer, so i grab this
        customer cus = (customer)e.InputParameters[0];


        // say that i have a DropDown to select the account ...
        // I Get de DropDown and get your SelectedValue.
        DropDownList ddlAccount  = (DropDownList)FormView1.FindControl("ddlAccount");
        // Whit the value i declare a new account
        account ac = new account () { id_account = int.Parse(ddlAccount.SelectedValue) };
        // and associate it to Customer
        cus.account = ac;

Надеюсь, это поможет

1 голос
/ 04 февраля 2010

вам нужно присоединиться

from c in db.Customer
join a in db.Account
on a.customerID equals c.customerID
select new Model {FirstName = c.firstName,LastName = c.lastName,Address = c.address,AccountRate = a.accountRate}

определите вашу модель как класс где-нибудь и привяжите к нему.

0 голосов
/ 02 июля 2010

Мне удалось получить свойства из связанного класса, например:

First Name:
<asp:TextBox ID="FirstNameTextBox" runat="server"
 Text='<%# Bind("Entitycontact.Namefirst") %>' />
...