Как мне сделать шаблон ManyToMany_Insert для динамических данных EF? - PullRequest
0 голосов
/ 12 декабря 2011

Я чрезвычайно новичок в динамических данных, но все равно сработаю.

У меня настроена модель EF с таблицей PJT, связывающей шоу и жанры.EDMX правильно отображает это как * - * отношение между шоу и жанрами со свойствами навигации.Используя динамические данные, я могу создать элемент «Показать», но только после его создания я могу отредактировать его, чтобы связать жанры (которые красиво отображаются в виде флажков).

Я прочитал это http://blogs.msdn.com/b/davidebb/archive/2008/10/25/a-many-to-many-field-template-for-dynamic-data.aspx статья, на которую все ссылаются, но я не вижу, как использовать шаблон поля ManyToMany_Edit.ascx на странице Показать вставку.Интересно, что в файле ManyToMany_Edit.ascx.cs, который у меня есть, есть комментарий, который говорит

// Этот шаблон поля используется как для редактирования, так и для вставки

Но я не вижу, чтобы он использовался для вставки!

Любые указатели будут с благодарностью!

1 Ответ

0 голосов
/ 17 февраля 2012

Например, создать такие производные классы, изменить тип DefaultModel в Global.asax

public class MyMetaModel:MetaModel
{
     public MyMetaModel() : base()
     {
         this.FieldTemplateFactory = new MyFieldTemplateFactory();
     }

    protected override MetaTable CreateTable(System.Web.DynamicData.ModelProviders.TableProvider provider)
    {
        return new MyMetaTable(this, provider);
    }
}

public class MyMetaTable : MetaTable
{
    public MyMetaTable(MetaModel metaModel, TableProvider tableProvider)
        :base(metaModel, tableProvider)
    {
    }

    public override IEnumerable<MetaColumn> GetScaffoldColumns(System.Web.UI.WebControls.DataBoundControlMode mode, ContainerType containerType)
    {
        if (this.Name != "entity1set") return base.GetScaffoldColumns(mode, containerType);

        List<MetaColumn> result = new List<MetaColumn>();

        result.Add(this.GetColumn("Name"));
        result.Add(this.GetColumn("entity2"));  // this can be many to many column

        return result;
    }
}

С наилучшими пожеланиями, corporal_lael

...