I am just starting to learn a bit about the entity framework and don't have much experience with ORM's.
In my little app I have one table, this sql server table has several columns including a PrimaryKey (int) a Name (string) and a Flag (tinyint).
When I imported this table into it automatically assigned the Flags' datatype as a byte. This is fine, but the Flag should really be a boolean, so I
I then got this error:
Error 2019: Member Mapping specified is not valid. The type 'Edm.Boolean[Nullable=True,DefaultValue=]' of member 'MyFlag' in type 'MyModel.MyItem' is not compatible with 'SqlServer.tinyint[Nullable=True,DefaultValue=]' of member 'MyFlag' in type 'MyModel.Store.MyItem'.
Is there a way to have
MyItem item = new MyItem();
item.Flag = true;
and have Flag save to 1 in the database?
You could change the datatype of MyFlag
to bit
in the database.
I think for the tinyint
you will have to make a partial class and use a separate field that appropriately read/writes to that field. However the framework will correctly interpret bit
fields as boolean
.
You could try something like below as the partial..
public partial class MyItem
{
public bool FlagBool
{
get { return Flag == 1; }
set { Flag = value ? 1 : 0; }
}
}
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