It would be useful to see what the hospital table looks like but assuming something simple like hospital consists of HospitalId and HospitalName then you have a couple of choices.
//would work if all you're trying to do is get the Name:
db.Database.SqlQuery<IEnumerable<string>>("SELECT hospitalName FROM hospital");
//where you define MyEntity as the same structure as the table would work
db.Database.SqlQuery<MyEntity>("SELECT * FROM hospital");
// would theoretically work although I haven't tried it. Where the Tuple
// items would have to match the database types in order. I.e. if field 1
// is an int and field 2 is a string then Tuple<int,string>
db.Database.SqlQuery<IEnumerable<Tuple<int, string>>>("SELECT * FROM hospital");
Basically the error is the code doesn't know how to stuff the structure of hospital into a string
You might also get this error if you are trying to execute an INSERT
, UPATE
or DELETE
command
Instead of using SqlQuery
use ExecuteSqlCommand
using (var ctx = new SchoolDBEntities())
{
int noOfRowUpdated = ctx.Database.ExecuteSqlCommand("Update student
set studentname ='changed student by command' where studentid=1");
int noOfRowInserted = ctx.Database.ExecuteSqlCommand("insert into student(studentname)
values('New Student')");
int noOfRowDeleted = ctx.Database.ExecuteSqlCommand("delete from student
where studentid=1");
}
For more details visit - http://www.entityframeworktutorial.net/EntityFramework4.3/raw-sql-query-in-entity-framework.aspx
This solved my issue, some results where not getting the way it was supposed to
string storedProcedure = "Admin_AutoGenerateKeywordsFortblCompany @Company_ID="
+ CompId;
var s = db.ExecuteStoreQuery<List<string>>("exec " + storedProcedure).ToList();
here single or multiple results can be caught
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With