Silverlight - RIA Services - этот EntitySet типа ‹› не поддерживает операцию «Добавить»

В проекте Silverlight у меня есть это исключение, когда я пытался добавить новый объект в DataGrid при нажатии кнопки. В классе DomainService.. Я знаю, что должен реализовать операцию добавления для новой сущности, которую я помещаю, но как я могу это сделать? Я имею в виду, что я сделал класс, метод 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();
        }

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


person user289082    schedule 10.03.2010    source источник


Ответы (2)


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

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

person JosephC    schedule 18.05.2010

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

person flip    schedule 07.08.2011