Mark Segal Mark Segal - 1 month ago 14
C# Question

Entity Framework throws exception - Invalid object name 'dbo.BaseCs'



I've followed Adam's answer here and the Entity Framework now works and the

Seed()
method also works.



But when I try to access the database like this:

public User FindUserByID(int id)
{
return (from item in this.Users
where item.ID == id
select item).SingleOrDefault();
}
.............................................................................
// GET: /Main/

public ActionResult Index(int? id)
{
var db = UserDataBaseDB.Create();

if (!id.HasValue)
id = 0;

return View(db.FindUserByID(id.Value));
}


It throws an exception at
return (from item in this.Users
stating:


Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'dbo.BaseCs'.





I've tried replacing it with:
return this.Users.ElementAt(id);
but then it throws this exception.


LINQ to Entities does not recognize the method 'MySiteCreator.Models.User ElementAt[User](System.Linq.IQueryable
1[MySiteCreator.Models.User], Int32)' method, and this method cannot be translated into a store expression.`


Can anyone help me?

Thank you!

Answer

Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'dbo.BaseCs'

This error means that EF is translating your LINQ into a sql statement that uses an object (most likely a table) named dbo.BaseCs, which does not exist in the database.

Check your database and verify whether that table exists, or that you should be using a different table name. Also, if you could post a link to the tutorial you are following, it would help to follow along with what you are doing.