C# POCO类编码第一个数据库?

C# POCO类编码第一个数据库?,c#,entity-framework,C#,Entity Framework,我有从xsd.exe生成的POCO类,现在我想先将这些类转换为实体框架代码数据库 我试图先生成代码,然后生成数据库,因为我得到了未包含主键的错误,若我在该类中添加自定义主键列,则会生成数据库 当我尝试反序列化该类以使用该POCO类提取数据时,它抛出类型不匹配错误 我需要一种方法将我的POCO类转换为数据库,并反序列化该类以加载数据,然后保存到数据库 编辑 我得到的错误是“有一个反映t_响应类型的错误” 以下是反序列化代码 XmlSerializer serializer = new XmlSer

我有从xsd.exe生成的POCO类,现在我想先将这些类转换为实体框架代码数据库

我试图先生成代码,然后生成数据库,因为我得到了未包含主键的错误,若我在该类中添加自定义主键列,则会生成数据库

当我尝试反序列化该类以使用该POCO类提取数据时,它抛出类型不匹配错误

我需要一种方法将我的POCO类转换为数据库,并反序列化该类以加载数据,然后保存到数据库

编辑

我得到的错误是“有一个反映t_响应类型的错误”

以下是反序列化代码

XmlSerializer serializer = new XmlSerializer(typeof(t_Response));
                using (StreamReader reader = new StreamReader(file))
                {
                    t_Response obj_t_Response = (t_Response)serializer.Deserialize(reader);
                    t_ResponseDetails responseDetails = (t_ResponseDetails)obj_t_Response.Item;
                    if (responseDetails.Items.Count() > 0)
                    {
                        t_SearchItemInformationResponse searchItemInfoResp = (t_SearchItemInformationResponse)responseDetails.Items[0];

                        t_ItemDetails itemDetails = (t_ItemDetails)searchItemInfoResp.Item;
                        t_ItemDetail[] itemDetail = (t_ItemDetail[])itemDetails.ItemDetail;
                        if (itemDetail.Count() > 0)
                        {
                            t_City city = itemDetail[0].City;
                            t_Location[] location = itemDetail[0].LocationDetails;
                            t_Item item = itemDetail[0].Item;
                            t_HotelInformation hotelInformation = (t_HotelInformation)itemDetail[0].Item1;
                            //hotelInformation.AddressLines.
                            //hotelInformati
                        }
                    }                        
                }
响应类的类结构是

 public partial class t_Response
{
    public int Id { get; set; }
}



public partial class t_Response
{
    private object itemField;

    private string requestReferenceField;

    private string responseReferenceField;

    private string responseSequenceField;

    private System.DateTime timeStampField;

    private bool timeStampFieldSpecified;


    [System.Xml.Serialization.XmlElementAttribute("Errors", typeof(t_Errors), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
    [System.Xml.Serialization.XmlElementAttribute("ResponseDetails", typeof(t_ResponseDetails), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
    public object Item
    {
        get
        {
            return this.itemField;
        }
        set
        {
            this.itemField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string RequestReference
    {
        get
        {
            return this.requestReferenceField;
        }
        set
        {
            this.requestReferenceField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public string ResponseReference
    {
        get
        {
            return this.responseReferenceField;
        }
        set
        {
            this.responseReferenceField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute(DataType = "integer")]
    public string ResponseSequence
    {
        get
        {
            return this.responseSequenceField;
        }
        set
        {
            this.responseSequenceField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAttributeAttribute()]
    public System.DateTime TimeStamp
    {
        get
        {
            return this.timeStampField;
        }
        set
        {
            this.timeStampField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlIgnoreAttribute()]
    public bool TimeStampSpecified
    {
        get
        {
            return this.timeStampFieldSpecified;
        }
        set
        {
            this.timeStampFieldSpecified = value;
        }
    }
}
公共部分类t\u响应
{
公共int Id{get;set;}
}
公共部分类t_响应
{
私有对象项字段;
私有字符串requestReferenceField;
私有字符串响应引用字段;
私有字符串响应序列字段;
private System.DateTime时间戳字段;
指定的专用布尔值;
[System.Xml.Serialization.xmlementAttribute(“Errors”,typeof(t_Errors),Form=System.Xml.Schema.XmlSchemaForm.Unqualified,Order=0]
[System.Xml.Serialization.xmlementAttribute(“ResponseDetails”,typeof(t_ResponseDetails),Form=System.Xml.Schema.XmlSchemaForm.Unqualified,Order=0)]
公共对象项
{
得到
{
返回此.itemField;
}
设置
{
this.itemField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute()]
公共字符串请求引用
{
得到
{
返回此.requestReferenceField;
}
设置
{
this.requestReferenceField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute()]
公共字符串响应引用
{
得到
{
返回此.responseReferenceField;
}
设置
{
this.responseReferenceField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute(DataType=“integer”)]
公共字符串响应序列
{
得到
{
返回此.responseSequenceField;
}
设置
{
this.responseSequenceField=值;
}
}
/// 
[System.Xml.Serialization.XmlAttributeAttribute()]
public System.DateTime时间戳
{
得到
{
返回此.timestamp字段;
}
设置
{
this.timeStampField=值;
}
}
/// 
[System.Xml.Serialization.XmlIgnoreAttribute()]
指定公共bool时间戳
{
得到
{
返回指定的这个.timestampfield;
}
设置
{
this.timeStampFieldSpecified=值;
}
}
}

当您曾经使用“代码优先”技术创建数据库,然后稍后您或您可能会尝试一个新的类和内容时,就会出现此
不匹配异常。(这次别忘了放置ID属性)。

您好,欢迎来到stack overflow。请将代码和确切错误发送给我们,以便我们能够查明问题。添加自定义主键时,类型不匹配。在POCO的主键上添加[XmlIgnore]注释。感谢stefan,已编辑的代码和错误问题谢谢AlexC让我试试你的建议谢谢zeeshan,类结构不是由xsd模式创建的,所以下次没有添加id的选项:)@MuzaffarAli否,我的意思是,尝试在模型类中创建id字段,模式通过反序列化映射到该字段。(或者我遗漏了什么?)。