GregInWI2
GregInWI2

Reputation: 904

Entity 4.0 Casting Value As DateTime

LINQ to Entity Framework 4.0. SQL Server.

I'm trying to return a list of objects and one of the columns in the database is varchar(255) and contains dates. I'm trying to cast the value to datetime, but I haven't found the solution to that yet.

Example:

    List<MyObject> objects = (from c in context.my_table
                              where c.field_id == 10
                              select new MyObject()
                              {
                                  MyDate = c.value // This is varchar, want it to be datetime
                              }).ToList();

Is this not possible?

Update. This is LINQ to Entity. When trying to convert to DateTime I get:

LINQ to Entities does not recognize the method 'System.DateTime ToDateTime(System.String)' method, and this method cannot be translated into a store expression.

Upvotes: 1

Views: 4541

Answers (4)

GregInWI2
GregInWI2

Reputation: 904

The answer is it's not currently possible with Entity Framework. With LINQ itself it is, just not supported with Entity Framework.

Upvotes: 1

indiPy
indiPy

Reputation: 8072

read, And the best bet would be using your result and then Converting to date time. Like below,

 static void Main(string[] args)
     {
        Console.WriteLine(getme());
        Console.ReadLine(); 
    }
    private static DateTime  getme()
    {
        List<string> ss = new List<string>();
        ss.Add("11/11/2010");
        var r = from l in ss
                select new { date = Convert.ToDateTime(l) };



        return r.FirstOrDefault().date;

    }

Upvotes: 0

Marco Leo
Marco Leo

Reputation: 516

you can do like this Date=DateTime.Parse(text)

Upvotes: 0

Marcie
Marcie

Reputation: 1259

You want DateTime.Parse(c.value) which will take a string containing a date and create a DateTime object out of it.

Upvotes: 0

Related Questions