2010-03-10 2 views
2

В проекте Silverlight у меня есть это исключение, когда я попытался добавить новый объект в DataGrid при нажатии кнопки. В классе DomainService .. Я знаю, что мне нужно реализовать операцию добавления для нового объекта, который я помещаю, но как я могу это сделать? Я имею в виду, что я сделал класс, метод get, но как я могу выполнить операцию вставки, я не могу видеть свой класс в этом. ObjectContext, так что я бы добавил этот новый объект, у меня есть следующие фрагменты кода :Silverlight -RIA Services-This EntitySet типа <> не поддерживает операцию «Добавить»

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(); 
     } 

Plz Help !!

ответ

2

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

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

0

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