2015-10-15 2 views
-1

Я не знаю, правильно ли это сделать. Вот мой класс, порожденный от Entities 6.xx:Сохраните класс как еще один частичный класс

namespace bd.inputdata.edmx 
{ 
    using model; 
    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel.DataAnnotations; 

    [MetadataType(typeof(Usuario))] 
    public partial class input_usuario 
    { 
     public int id { get; set; } 
     public string nome { get; set; } 
     public string usuario { get; set; } 
     public string senha { get; set; } 
     public string email { get; set; } 
     public int id_grupo { get; set; } 
     public System.DateTime data_criacao { get; set; } 
     public System.DateTime data_alteracao { get; set; } 
     public Nullable<int> tipo { get; set; } 
     public byte ativo { get; set; } 
    } 
} 

Я создал еще один класс для anottions данных, как видно here.

using System; 
using bd.inputdata.Base; 
using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 

namespace bd.inputdata.model 
{ 
    [Table("usuario")] 
    public class Usuario : IRaizDeAgregacao 
    { 
     [Key] 
     public int id { get; set; } 

     [Required] 
     [StringLength(150)] 
     public string nome { get; set; } 

     [Required] 
     [StringLength(100)] 
     public string usuario { get; set; } 

     [Required] 
     [StringLength(100)] 
     public string senha { get; set; } 

     [Required] 
     [StringLength(50)] 
     public string email { get; set; } 

     [Required] 
     public int id_grupo { get; set; } 

     [Timestamp] 
     public DateTime data_criacao { get; set; } 

     [Timestamp] 
     public DateTime data_alteracao { get; set; } 

     public int? tipo { get; set; } 
     public byte ativo { get; set; } 


    } 
} 

Когда я пытаюсь сохранить в контексте этого нового класса Новичок, он говорит, что я не могу:

The wrong type error

Так что это лучший способ, чтобы исправить это?

+1

попробуйте следующее: изменений 'общественного класс: Новичок IRaizDeAgregacao' для' общественного частичного класса input_usuario: IRaizDeAgregacao' – Eon

+0

@Krohn Вы не можете добавлять атрибутов к свойствам через частичный класс. –

+0

@ Крон вы хотите просто использовать одно и то же имя класса? –

ответ

1

Структура Entity создает классы для вас здесь, основываясь на вашей базе данных. Почему бы не добавить свои аннотации к сгенерированному классу? Если вы хотите использовать свои собственные POCOs, вам нужно сначала перейти к коду. В зависимости от того, что означают аннотации (например, front end), используйте DTO, то есть класс, который вы написали с DTO, прикрепленным к концу имени класса. Затем вы можете сопоставить это с созданным классом, прежде чем сохранять его в базе данных.

0

MeteData классы не предназначены для DTO, которые могут быть заменены типом сущности - они предназначены для того, чтобы у вас было место для добавления атрибутов в вашу модель сущности без изменения кода, созданного конструктором. Вы должны либо использовать свой класс сущности в своем приложении (не класс MetaData), либо использовать другой тип модели для использования в своем приложении, а затем сопоставить его с моделью сущности.

+0

Можете ли вы продемонстрировать этот другой тип модели для использования в приложении? Благодаря! –

Смежные вопросы