我正在为我的MVC项目创建一个.edmx。我已经映射了两个从数据库返回电影信息的过程。
第一个过程是getMoviesByName,它只返回Id和Name。第二个过程是getAllMovies,它返回Id,Name和CreatedDate。
我希望这两个过程都能将数据作为名为Movie的ComplexType返回。
我正在实例化我的MyDbEntities并尝试根据条件使用这两个过程,就像下面的示例中一样,但是当变量isLookingByName
为真时它会失败并显示以下消息:
类型成员'CreatedDate'在数据阅读器中没有相应名称的相应列。
示例:
var db = new MyDbEntities();
if(isLookingByName)
{
return db.getMoviesByName(name).ToList();
}
return db.getAllMovies().ToList();
因此,只要条件为真,它就会抛出异常。问题是我无法更改添加CreatedDate
的第一个过程。
只是让我们在我的视图中知道我显示所有这三个信息Id,Name和CreatedDate。当CreatedDate为null时,它不显示,我很好。
有人知道我该怎么办?
非常感谢!
答案 0 :(得分:0)
解决方法是使用ADO.NET
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand(
"SELECT Id, Name and CreatedDate FROM movies WHERE id= @id", connection))
{
command.Parameters.Add(new SqlParameter("@id", id));
SqlDataReader reader = command.ExecuteReader();
if(reader.HasRows())
{
var id= reader["Id"].ToString();
var name= reader["Name"].ToString();
}
}
}