In the following scenario, I am trying to hide the property called 'Photo' on Employee from Edm model. Notice from the metadata below that 'Photo' is hidden from Employee entity type but shows up for Manager entity type.<br /><br />Models<br />---------<br />public class Employee1<br /> {<br /> public int Id { get; set; }<br /><br /> public string Name { get; set; }<br /><br /> public byte[] Photo { get; set; }<br /> }<br /><br /> public class Manager1 : Employee1<br /> {<br /> public List<Employee1> DirectReports { get; set; } <br /> }<br /><br />Building Model<br />-----------------<br />static IEdmModel BuildModel()<br /> {<br /> ODataConventionModelBuilder builder = new ODataConventionModelBuilder();<br /><br /> var employees = builder.EntitySet<Employee1>("Employees");<br /><br /> employees.EntityType.Ignore(emp => emp.Photo);<br /><br /> return builder.GetEdmModel();<br /> }<br /><br />Metadata<br />-----------<br /><?xml version="1.0" encoding="utf-8"?><br /><edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><br /> <edmx:DataServices m:DataServiceVersion="1.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><br /> <Schema Namespace="ConsoleApplication1" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><br /> <EntityType Name="Employee1"><br /> <Key><br /> <PropertyRef Name="Id" /><br /> </Key><br /> <Property Name="Id" Type="Edm.Int32" Nullable="false" /><br /> <Property Name="Name" Type="Edm.String" /><br /> </EntityType><br /> <EntityType Name="Manager1" BaseType="ConsoleApplication1.Employee1"><br /> <Property Name="Photo" Type="Edm.Binary" /><br /> <NavigationProperty Name="DirectReports" Relationship="ConsoleApplication1.ConsoleApplication1_Manager1_DirectReports_ConsoleApplication1_Employee1_DirectReportsPartner" ToRole="DirectReports" FromRole="DirectReportsPartner" /><br /> </EntityType><br /> <Association Name="ConsoleApplication1_Manager1_DirectReports_ConsoleApplication1_Employee1_DirectReportsPartner"><br /> <End Type="ConsoleApplication1.Employee1" Role="DirectReports" Multiplicity="*" /><br /> <End Type="ConsoleApplication1.Manager1" Role="DirectReportsPartner" Multiplicity="0..1" /><br /> </Association><br /> </Schema><br /> <Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><br /> <EntityContainer Name="Container"><br /> <EntitySet Name="Employees" EntityType="ConsoleApplication1.Employee1" /><br /> <AssociationSet Name="ConsoleApplication1_Manager1_DirectReports_ConsoleApplication1_Employee1_DirectReportsPartnerSet" Association="ConsoleApplication1.ConsoleApplication1_Manager1_DirectReports_ConsoleApplication1_Employee1_DirectReportsPartner"><br /> <End Role="DirectReportsPartner" EntitySet="Employees" /><br /> <End Role="DirectReports" EntitySet="Employees" /><br /> </AssociationSet><br /> </EntityContainer><br /> </Schema><br /> </edmx:DataServices><br /></edmx:Edmx>
↧