none
Проблема с добавлением новой записи EF 4.1 SqlCompact CE 3.5 Model-First RRS feed

  • Вопрос

  • При выполнении кода: (первичная модель диаграмма,от нее сгенерирован objectcontext и сформирована база sqlce 3.5 выдает

    {"Ключи и значения, формируемые сервером, не поддерживаются SQL Server Compact."}

    Помогите, как исправить эту бяку?

    using (МодельДанныхContainer context = new МодельДанныхContainer())
    {
    var count = context.НастройкиПрограммыНабор.Count();
    Врач c = context.ВрачНабор.First(i => i.КлючВрач == (Карточка.КлючОсновнойВрач));
    if (count == 0)
    {
    НастройкиПрограммы Настройка = new НастройкиПрограммы();
    Настройка.КлючНастройки = Guid.NewGuid();
    Настройка.Врач = с;
    context.НастройкиПрограммыНабор.AddObject(Настройка);
    context.SaveChanges();
    }


    выдает:

    {"Ключи и значения, формируемые сервером, не поддерживаются SQL Server Compact."}

    хотя если запись есть в базе код на изменение отрабатывает на отлично

    НастройкиПрограммы Настройка  = context.НастройкиПрограммыНабор.First();
    Настройка.Врач = c;
    context.SaveChanges();


    Сама модель вот: (сгенерирована системой, изменения в нее не вносил)

        public partial class МодельДанныхContainer : ObjectContext
        {
            #region Конструкторы
        
            /// <summary>
            /// Инициализирует новый объект МодельДанныхContainer, используя строку соединения из раздела "МодельДанныхContainer" файла конфигурации приложения.
            /// </summary>
            public МодельДанныхContainer() : base("name=МодельДанныхContainer", "МодельДанныхContainer")
            {
                this.ContextOptions.LazyLoadingEnabled = true;
                OnContextCreated();
            }
        
            /// <summary>
            /// Инициализация нового объекта МодельДанныхContainer.
            /// </summary>
            public МодельДанныхContainer(string connectionString) : base(connectionString, "МодельДанныхContainer")
            {
                this.ContextOptions.LazyLoadingEnabled = true;
                OnContextCreated();
            }
        
            /// <summary>
            /// Инициализация нового объекта МодельДанныхContainer.
            /// </summary>
            public МодельДанныхContainer(EntityConnection connection) : base(connection, "МодельДанныхContainer")
            {
                this.ContextOptions.LazyLoadingEnabled = true;
                OnContextCreated();
            }
        
            #endregion
        
            #region Разделяемые методы
        
            partial void OnContextCreated();
        
            #endregion
        
            #region Свойства ObjectSet
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            public ObjectSet<Врач> ВрачНабор
            {
                get
                {
                    if ((_ВрачНабор == null))
                    {
                        _ВрачНабор = base.CreateObjectSet<Врач>("ВрачНабор");
                    }
                    return _ВрачНабор;
                }
            }
            private ObjectSet<Врач> _ВрачНабор;
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            public ObjectSet<Больной> БольнойНабор
            {
                get
                {
                    if ((_БольнойНабор == null))
                    {
                        _БольнойНабор = base.CreateObjectSet<Больной>("БольнойНабор");
                    }
                    return _БольнойНабор;
                }
            }
            private ObjectSet<Больной> _БольнойНабор;
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            public ObjectSet<ЖурналПриема> ЖурналПриемаНабор
            {
                get
                {
                    if ((_ЖурналПриемаНабор == null))
                    {
                        _ЖурналПриемаНабор = base.CreateObjectSet<ЖурналПриема>("ЖурналПриемаНабор");
                    }
                    return _ЖурналПриемаНабор;
                }
            }
            private ObjectSet<ЖурналПриема> _ЖурналПриемаНабор;
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            public ObjectSet<НастройкиПрограммы> НастройкиПрограммыНабор
            {
                get
                {
                    if ((_НастройкиПрограммыНабор == null))
                    {
                        _НастройкиПрограммыНабор = base.CreateObjectSet<НастройкиПрограммы>("НастройкиПрограммыНабор");
                    }
                    return _НастройкиПрограммыНабор;
                }
            }
            private ObjectSet<НастройкиПрограммы> _НастройкиПрограммыНабор;
    
            #endregion
            #region Методы AddTo
        
            /// <summary>
            /// Устаревший метод для добавления новых объектов в набор EntitySet ВрачНабор. Взамен можно использовать метод .Add связанного свойства ObjectSet&lt;T&gt;.
            /// </summary>
            public void AddToВрачНабор(Врач врач)
            {
                base.AddObject("ВрачНабор", врач);
            }
        
            /// <summary>
            /// Устаревший метод для добавления новых объектов в набор EntitySet БольнойНабор. Взамен можно использовать метод .Add связанного свойства ObjectSet&lt;T&gt;.
            /// </summary>
            public void AddToБольнойНабор(Больной больной)
            {
                base.AddObject("БольнойНабор", больной);
            }
        
            /// <summary>
            /// Устаревший метод для добавления новых объектов в набор EntitySet ЖурналПриемаНабор. Взамен можно использовать метод .Add связанного свойства ObjectSet&lt;T&gt;.
            /// </summary>
            public void AddToЖурналПриемаНабор(ЖурналПриема журналПриема)
            {
                base.AddObject("ЖурналПриемаНабор", журналПриема);
            }
        
            /// <summary>
            /// Устаревший метод для добавления новых объектов в набор EntitySet НастройкиПрограммыНабор. Взамен можно использовать метод .Add связанного свойства ObjectSet&lt;T&gt;.
            /// </summary>
            public void AddToНастройкиПрограммыНабор(НастройкиПрограммы настройкиПрограммы)
            {
                base.AddObject("НастройкиПрограммыНабор", настройкиПрограммы);
            }
    
            #endregion
        }
        
    
        #endregion
        
        #region Сущности
        
        /// <summary>
        /// Нет доступной документации по метаданным.
        /// </summary>
        [EdmEntityTypeAttribute(NamespaceName="МодельДанных", Name="Больной")]
        [Serializable()]
        [DataContractAttribute(IsReference=true)]
        public partial class Больной : EntityObject
        {
            #region Фабричный метод
        
            /// <summary>
            /// Создание нового объекта Больной.
            /// </summary>
            /// <param name="ключБольной">Исходное значение свойства КлючБольной.</param>
            public static Больной CreateБольной(global::System.Guid ключБольной)
            {
                Больной больной = new Больной();
                больной.КлючБольной = ключБольной;
                return больной;
            }
    
            #endregion
            #region Свойства-примитивы
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
            [DataMemberAttribute()]
            public global::System.Guid КлючБольной
            {
                get
                {
                    return _КлючБольной;
                }
                set
                {
                    if (_КлючБольной != value)
                    {
                        OnКлючБольнойChanging(value);
                        ReportPropertyChanging("КлючБольной");
                        _КлючБольной = StructuralObject.SetValidValue(value);
                        ReportPropertyChanged("КлючБольной");
                        OnКлючБольнойChanged();
                    }
                }
            }
            private global::System.Guid _КлючБольной;
            partial void OnКлючБольнойChanging(global::System.Guid value);
            partial void OnКлючБольнойChanged();
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
            [DataMemberAttribute()]
            public global::System.String ФиО
            {
                get
                {
                    return _ФиО;
                }
                set
                {
                    OnФиОChanging(value);
                    ReportPropertyChanging("ФиО");
                    _ФиО = StructuralObject.SetValidValue(value, true);
                    ReportPropertyChanged("ФиО");
                    OnФиОChanged();
                }
            }
            private global::System.String _ФиО;
            partial void OnФиОChanging(global::System.String value);
            partial void OnФиОChanged();
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
            [DataMemberAttribute()]
            public global::System.Byte[] Фото
            {
                get
                {
                    return StructuralObject.GetValidValue(_Фото);
                }
                set
                {
                    OnФотоChanging(value);
                    ReportPropertyChanging("Фото");
                    _Фото = StructuralObject.SetValidValue(value, true);
                    ReportPropertyChanged("Фото");
                    OnФотоChanged();
                }
            }
            private global::System.Byte[] _Фото;
            partial void OnФотоChanging(global::System.Byte[] value);
            partial void OnФотоChanged();
    
            #endregion
        
            #region Свойства навигации
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [XmlIgnoreAttribute()]
            [SoapIgnoreAttribute()]
            [DataMemberAttribute()]
            [EdmRelationshipNavigationPropertyAttribute("МодельДанных", "ЖурналПриемаБольной", "ЖурналПриема")]
            public EntityCollection<ЖурналПриема> ЖурналПриема
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<ЖурналПриема>("МодельДанных.ЖурналПриемаБольной", "ЖурналПриема");
                }
                set
                {
                    if ((value != null))
                    {
                        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<ЖурналПриема>("МодельДанных.ЖурналПриемаБольной", "ЖурналПриема", value);
                    }
                }
            }
    
            #endregion
        }
        
        /// <summary>
        /// Нет доступной документации по метаданным.
        /// </summary>
        [EdmEntityTypeAttribute(NamespaceName="МодельДанных", Name="Врач")]
        [Serializable()]
        [DataContractAttribute(IsReference=true)]
        public partial class Врач : EntityObject
        {
            #region Фабричный метод
        
            /// <summary>
            /// Создание нового объекта Врач.
            /// </summary>
            /// <param name="ключВрач">Исходное значение свойства КлючВрач.</param>
            /// <param name="фиО">Исходное значение свойства ФиО.</param>
            public static Врач CreateВрач(global::System.Guid ключВрач, global::System.String фиО)
            {
                Врач врач = new Врач();
                врач.КлючВрач = ключВрач;
                врач.ФиО = фиО;
                return врач;
            }
    
            #endregion
            #region Свойства-примитивы
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
            [DataMemberAttribute()]
            public global::System.Guid КлючВрач
            {
                get
                {
                    return _КлючВрач;
                }
                set
                {
                    if (_КлючВрач != value)
                    {
                        OnКлючВрачChanging(value);
                        ReportPropertyChanging("КлючВрач");
                        _КлючВрач = StructuralObject.SetValidValue(value);
                        ReportPropertyChanged("КлючВрач");
                        OnКлючВрачChanged();
                    }
                }
            }
            private global::System.Guid _КлючВрач;
            partial void OnКлючВрачChanging(global::System.Guid value);
            partial void OnКлючВрачChanged();
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
            [DataMemberAttribute()]
            public global::System.String ФиО
            {
                get
                {
                    return _ФиО;
                }
                set
                {
                    OnФиОChanging(value);
                    ReportPropertyChanging("ФиО");
                    _ФиО = StructuralObject.SetValidValue(value, false);
                    ReportPropertyChanged("ФиО");
                    OnФиОChanged();
                }
            }
            private global::System.String _ФиО;
            partial void OnФиОChanging(global::System.String value);
            partial void OnФиОChanged();
    
            #endregion
        
            #region Свойства навигации
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [XmlIgnoreAttribute()]
            [SoapIgnoreAttribute()]
            [DataMemberAttribute()]
            [EdmRelationshipNavigationPropertyAttribute("МодельДанных", "ЖурналПриемаВрач", "ЖурналПриема")]
            public EntityCollection<ЖурналПриема> ЖурналПриема
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<ЖурналПриема>("МодельДанных.ЖурналПриемаВрач", "ЖурналПриема");
                }
                set
                {
                    if ((value != null))
                    {
                        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<ЖурналПриема>("МодельДанных.ЖурналПриемаВрач", "ЖурналПриема", value);
                    }
                }
            }
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [XmlIgnoreAttribute()]
            [SoapIgnoreAttribute()]
            [DataMemberAttribute()]
            [EdmRelationshipNavigationPropertyAttribute("МодельДанных", "НастройкиПрограммыВрач", "НастройкиПрограммы")]
            public EntityCollection<НастройкиПрограммы> НастройкиПрограммы
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<НастройкиПрограммы>("МодельДанных.НастройкиПрограммыВрач", "НастройкиПрограммы");
                }
                set
                {
                    if ((value != null))
                    {
                        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<НастройкиПрограммы>("МодельДанных.НастройкиПрограммыВрач", "НастройкиПрограммы", value);
                    }
                }
            }
    
            #endregion
        }
        
        /// <summary>
        /// Нет доступной документации по метаданным.
        /// </summary>
        [EdmEntityTypeAttribute(NamespaceName="МодельДанных", Name="ЖурналПриема")]
        [Serializable()]
        [DataContractAttribute(IsReference=true)]
        public partial class ЖурналПриема : EntityObject
        {
            #region Фабричный метод
        
            /// <summary>
            /// Создание нового объекта ЖурналПриема.
            /// </summary>
            /// <param name="ключЖурнал">Исходное значение свойства КлючЖурнал.</param>
            /// <param name="датаПриема">Исходное значение свойства ДатаПриема.</param>
            public static ЖурналПриема CreateЖурналПриема(global::System.Int32 ключЖурнал, global::System.DateTime датаПриема)
            {
                ЖурналПриема журналПриема = new ЖурналПриема();
                журналПриема.КлючЖурнал = ключЖурнал;
                журналПриема.ДатаПриема = датаПриема;
                return журналПриема;
            }
    
            #endregion
            #region Свойства-примитивы
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
            [DataMemberAttribute()]
            public global::System.Int32 КлючЖурнал
            {
                get
                {
                    return _КлючЖурнал;
                }
                set
                {
                    if (_КлючЖурнал != value)
                    {
                        OnКлючЖурналChanging(value);
                        ReportPropertyChanging("КлючЖурнал");
                        _КлючЖурнал = StructuralObject.SetValidValue(value);
                        ReportPropertyChanged("КлючЖурнал");
                        OnКлючЖурналChanged();
                    }
                }
            }
            private global::System.Int32 _КлючЖурнал;
            partial void OnКлючЖурналChanging(global::System.Int32 value);
            partial void OnКлючЖурналChanged();
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
            [DataMemberAttribute()]
            public global::System.DateTime ДатаПриема
            {
                get
                {
                    return _ДатаПриема;
                }
                set
                {
                    OnДатаПриемаChanging(value);
                    ReportPropertyChanging("ДатаПриема");
                    _ДатаПриема = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("ДатаПриема");
                    OnДатаПриемаChanged();
                }
            }
            private global::System.DateTime _ДатаПриема;
            partial void OnДатаПриемаChanging(global::System.DateTime value);
            partial void OnДатаПриемаChanged();
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
            [DataMemberAttribute()]
            public global::System.String Тема
            {
                get
                {
                    return _Тема;
                }
                set
                {
                    OnТемаChanging(value);
                    ReportPropertyChanging("Тема");
                    _Тема = StructuralObject.SetValidValue(value, true);
                    ReportPropertyChanged("Тема");
                    OnТемаChanged();
                }
            }
            private global::System.String _Тема;
            partial void OnТемаChanging(global::System.String value);
            partial void OnТемаChanged();
    
            #endregion
        
            #region Свойства навигации
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [XmlIgnoreAttribute()]
            [SoapIgnoreAttribute()]
            [DataMemberAttribute()]
            [EdmRelationshipNavigationPropertyAttribute("МодельДанных", "ЖурналПриемаБольной", "Больной")]
            public Больной Больной
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Больной>("МодельДанных.ЖурналПриемаБольной", "Больной").Value;
                }
                set
                {
                    ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Больной>("МодельДанных.ЖурналПриемаБольной", "Больной").Value = value;
                }
            }
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [BrowsableAttribute(false)]
            [DataMemberAttribute()]
            public EntityReference<Больной> БольнойReference
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Больной>("МодельДанных.ЖурналПриемаБольной", "Больной");
                }
                set
                {
                    if ((value != null))
                    {
                        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Больной>("МодельДанных.ЖурналПриемаБольной", "Больной", value);
                    }
                }
            }
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [XmlIgnoreAttribute()]
            [SoapIgnoreAttribute()]
            [DataMemberAttribute()]
            [EdmRelationshipNavigationPropertyAttribute("МодельДанных", "ЖурналПриемаВрач", "Врач")]
            public Врач Врач
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Врач>("МодельДанных.ЖурналПриемаВрач", "Врач").Value;
                }
                set
                {
                    ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Врач>("МодельДанных.ЖурналПриемаВрач", "Врач").Value = value;
                }
            }
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [BrowsableAttribute(false)]
            [DataMemberAttribute()]
            public EntityReference<Врач> ВрачReference
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Врач>("МодельДанных.ЖурналПриемаВрач", "Врач");
                }
                set
                {
                    if ((value != null))
                    {
                        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Врач>("МодельДанных.ЖурналПриемаВрач", "Врач", value);
                    }
                }
            }
    
            #endregion
        }
        
        /// <summary>
        /// Нет доступной документации по метаданным.
        /// </summary>
        [EdmEntityTypeAttribute(NamespaceName="МодельДанных", Name="НастройкиПрограммы")]
        [Serializable()]
        [DataContractAttribute(IsReference=true)]
        public partial class НастройкиПрограммы : EntityObject
        {
            #region Фабричный метод
        
            /// <summary>
            /// Создание нового объекта НастройкиПрограммы.
            /// </summary>
            /// <param name="ключНастройки">Исходное значение свойства КлючНастройки.</param>
            public static НастройкиПрограммы CreateНастройкиПрограммы(global::System.Guid ключНастройки)
            {
                НастройкиПрограммы настройкиПрограммы = new НастройкиПрограммы();
                настройкиПрограммы.КлючНастройки = ключНастройки;
                return настройкиПрограммы;
            }
    
            #endregion
            #region Свойства-примитивы
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
            [DataMemberAttribute()]
            public global::System.Guid КлючНастройки
            {
                get
                {
                    return _КлючНастройки;
                }
                set
                {
                    if (_КлючНастройки != value)
                    {
                        OnКлючНастройкиChanging(value);
                        ReportPropertyChanging("КлючНастройки");
                        _КлючНастройки = StructuralObject.SetValidValue(value);
                        ReportPropertyChanged("КлючНастройки");
                        OnКлючНастройкиChanged();
                    }
                }
            }
            private global::System.Guid _КлючНастройки;
            partial void OnКлючНастройкиChanging(global::System.Guid value);
            partial void OnКлючНастройкиChanged();
    
            #endregion
        
            #region Свойства навигации
        
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [XmlIgnoreAttribute()]
            [SoapIgnoreAttribute()]
            [DataMemberAttribute()]
            [EdmRelationshipNavigationPropertyAttribute("МодельДанных", "НастройкиПрограммыВрач", "Врач")]
            public Врач Врач
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Врач>("МодельДанных.НастройкиПрограммыВрач", "Врач").Value;
                }
                set
                {
                    ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Врач>("МодельДанных.НастройкиПрограммыВрач", "Врач").Value = value;
                }
            }
            /// <summary>
            /// Нет доступной документации по метаданным.
            /// </summary>
            [BrowsableAttribute(false)]
            [DataMemberAttribute()]
            public EntityReference<Врач> ВрачReference
            {
                get
                {
                    return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Врач>("МодельДанных.НастройкиПрограммыВрач", "Врач");
                }
                set
                {
                    if ((value != null))
                    {
                        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Врач>("МодельДанных.НастройкиПрограммыВрач", "Врач", value);
                    }
                }
            }
    


    21 ноября 2016 г. 22:35

Ответы