问题
model.cs
[Column(TypeName = "json")]
public string application_role { get; set; }
Its MySQL, data type of particular column is json
, and how to add it in a model class. I tried with DataAnnotations but getting error as
The specified type member 'application_role' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
Linq Query to get data
context.sc_employee_details
.Where(e => e.user_name.Equals(userName))
.Select(o => o.application_role).SingleOrDefault();
回答1:
It might be a bit late, but EF on MySQL supports JSON format, here is announcement. Basically, you have to define an attribute like this one:
public JsonObject<string[]> Tags { get; set; } // Json storage
hope it helps!
回答2:
You will do something like this
private string _application_role;
public string application_role
{
get{
return JsonConvert.DeserializeObject<string>(_application_role)
}
set{
_application_role = JsonConvert.SerializeObject(value);
}
}
Or if you do not want to edit your model then you could do something like this
var myRole = context.sc_employee_details
.Where(e => e.user_name.Equals(userName))
.Select(o => o.application_role).SingleOrDefault();
if(myRole != null){
var desRole = JsonConvert.DeserializeObject<string>(myRole);
}
来源:https://stackoverflow.com/questions/47455701/how-to-use-json-data-type-in-c-sharp-entity-framework-model