Silverlight -RIA Services-Этот EntitySet типа <> не поддерживает операцию «Добавить» - PullRequest
2 голосов
/ 10 марта 2010

В проекте Silverlight у меня есть это исключение, когда я пытался добавить новый объект в DataGrid при нажатии кнопки. В классе DomainService .. Я знаю, что должен реализовать операцию Add для нового Entity, который я помещаю, но как я могу это сделать? Я имею в виду, что я сделал класс, метод get, но как мне сделать операцию вставки, я не вижу своего класса в this.ObjectContext, поэтому для которого я буду добавлять этот новый объект, у меня есть следующие фрагменты кода:

public partial class SisPer
    {
        [Key]
        public int Id { get; set; }
        public string Nombre_Sistema { get; set; }
        public string Nombre_Perfil { get; set; }
        public string Nivel { get; set; }
        public bool Estatus { get; set; }
    }

 public IQueryable<SisPer> Get_SisPer()
        {

            var query =
                   from per in this.ObjectContext.Cat_Perfil
                   join sis in this.ObjectContext.Cat_Sistema
                   on per.Cat_Sistema.Id equals sis.Id

                   select new SisPer()
                   {
                       Id = per.Id,
                       Nombre_Sistema = sis.Nombre,
                       Nombre_Perfil = per.Nombre,
                       Nivel = per.Nivel,
                       Estatus = per.Estatus
                   };

        return query;
    }
public void InsertSisPer(SisPer sisper)
        {
          ?? I can't see this.ObjectContext.AddToSisPer();
        }

Пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 19 мая 2010

Вы хотите проверить модель презентации. Есть ли веская причина объединить две таблицы? Это добавляет много работы, которую вы могли бы избежать, просто выставив обе таблицы. Если вы не хотите, чтобы некоторые свойства были доступны на клиенте, вы можете использовать для них атрибут ExcludeAttribute.

http://blogs.msdn.com/deepm/archive/2009/11/20/wcf-ria-services-presentation-model-explained.aspx

0 голосов
/ 07 августа 2011

Правильно, вы не увидите this.ObjectContext.AddToSisPer. Но ваш ObjectContext предоставляет EntitySet<SisPer> SisPers. Всякий раз, когда вы звоните ObjectSet.Sispers.Add(SisPer sisper), операция вставки будет вызываться автоматически, если вы соблюдаете соглашения, описанные в Доменные службы . Например. добавьте к вашей операции вставки префикс Insert-, Add- или Create, украсьте ее атрибутом [Insert], передайте сущность SisPer и верните void.

...