j'ai un modèle de données LINQ-to-SQL qui comprend un type Party
qui est classée sous deux fois pour Company
et Individual
. Je suis en train de lier deux répéteurs à LINQ to SQL requêtes comme suitliaison à linq hérité types dans asp.net
Dim oComp As IEnumerable(Of Company)
Dim oInd As IEnumerable(Of Individual)
oComp = From oP As Company In ERM.Parties _
Where TypeOf (oP) Is Company And _
oP.Name.StartsWith(sSearchString)
oInd = From oP As Individual In ERM.Parties _
Where TypeOf (oP) Is Individual And _
(oP.FirstName.StartsWith(sSearchString) Or _
oP.LastName.StartsWith(sSearchString))
rptIndividuals.DataSource = oInd
rptCompanies.DataSource = oComp
rptCompanies.DataBind()
rptIndividuals.DataBind()
quand je fais un pas dans le code oComp
et oInd
sont IEnumerable<Company>
et IEnumerable<Individual>
comme prévu, mais je reçois l'exception suivante lorsque le premier DataBind
appel est atteinte
System.MissingMethodException était non gérée par le code utilisateur message = "constructeur du type «
1[[DataModel.Party, DataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' not found." Source="mscorlib" StackTrace: at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Data.Linq.Provider.BindingList.Create[T](DataContext context, IEnumerable
System.Data.Linq.Provider.DataBindingList une séquence) à System.Data.Linq.DataQuery1.GetNewBindingList() at System.Data.Linq.DataQuery
1.System.ComponentModel.IListSource.GetList() à System.Web.UI.DataSourceHelper.GetResolvedDataSource (Object dataSource, String DataMember) à System.Web.UI.WebControls.ReadOnlyDataSource.System.Web.UI.IDataSource. GetView (String viewName) à System.Web.UI.WebControls.Repeater.ConnectToDataSourceView() à System.Web.UI.WebControls.Repeater.GetData() à System.Web.UI.WebControls.Repeater.CreateControlHierarchy (Boolean useDataSource) à System.Web.UI.WebControls.Repeater.OnDataBinding (EventArgs e) à System.Web.UI.WebControls.Repeater.DataBind() à parties.lbHiddenPostback_Click (Object expéditeur, EventArgs e) dans \ parties. aspx.vb: ligne 491 à System.Web.UI.WebControls.LinkButton.OnC lécher (EventArgs e) à System.Web.UI.WebControls.LinkButton.RaisePostBackEvent (String eventArgument) à System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) au système .Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler SourceControl, String eventArgument) à System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) InnerException :
si je sélectionne alors tout comme parties plutôt comme suit, tout fonctionne bienIl n'y a rien dans l'un ou l'autre répéteur qui se rapporte aux données retournées, juste une étiquette dans le modèle d'élément pour montrer combien d'enregistrements sont retournés pour chaque requête.
Cela ne me semble pas logique que je doive me lier au type parent, je serai incapable d'accéder aux attributs associés à Individuel et Société sans d'abord lancer ce type!