实体框架映射问题

时间:2013-02-13 17:46:09

标签: vb.net entity-framework-5

我非常陌生.Net已经在这里工作了一个星期,所以请尽量做到尽可能详细:)

我有以下PONO:

Public Class WorkOrderEntity

    Private intTrackingNumber As Integer
    Private intDateReceived As Integer
    Private strManufacturer As String

    Public Property TrackingNumber() As Integer
        Get
            Return intTrackingNumber
        End Get

        Set(value As Integer)
            intTrackingNumber = value
        End Set
    End Property

    Public Property DateReceived() As String
        Get
            ' TODO: Convert timestamp to formatted date
            Return intDateReceived
        End Get

        Set(value As String)
            ' TODO: Convert formatted date to timestamp
            intDateReceived = value
        End Set
    End Property

End Class

我面临的问题是如何将日期/时间存储为时间戳(整数),但提供相应格式化/转换的公共属性。

我想我可以提供一个额外的getter()/ setter(),但理想情况下我想知道EF是否有办法绕过这个“惯例”?

此外 - 我也很好奇是否可以将属性映射到未正确标记的列?

基本上,如果我在现有数据库中工作(EF自动构建具有以表字段命名的属性的PONO),我希望将字段命名为更有意义的字段;例如某些字段可能是笨拙的缩写,但在对象模型中我想要更友好的英语?

我似乎记得能够用Java中的Hibernate(实际上它是PHP端口)做到这一点,但EF支持这样的功能从来没有这么少?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

时间戳SQL Server至少现在是一个RowVersion。在任何一种情况下,它都不是日期时间,而是版本的字节数组,当行更改时自动更新。您没有将其转换为日期。

关于通过配置而不是约定来映射元素,可以使用属性或fluent语法来指定映射。有关如何使用这些功能的信息,请参阅http://msdn.microsoft.com/en-US/data/jj200620