Quantcast
Channel: Developer to developer
Viewing all articles
Browse latest Browse all 9076

DDS with nested types

$
0
0

Hi!
I want to save some data with DDS, but keep having NotSupported exceptions when using linq querries.

I have done it with Entity Framework, but I wanted to migrate to Episerver API.

Is it even possible with the Episerver querry provider?

Code example:

    public class MyConfiguration
    {
        public int MyNumber { get; set; }
        public ICollection<MyPage> ChoosedPages { get; set; }
        public ICollection<MyLanguage> ChoosedLanguages { get; set; }
    }
    public class MyPage
    {
        public bool IsSelected { get; set; }
        public string GUID { get; set; }
    }
    public class MyLanguage
    {
        public bool IsSelected { get; set; }
        public string LanguageName { get; set; }
    }
    public class Testing
    {
        public void Test ()
        {
            var configuration = new MyConfiguration ()
            {
                MyNumber = 1,
                ChoosedPages = new List<MyPage> ()
                {
                    new MyPage()
                    {
                        IsSelected = true,
                        GUID = "aaaa"
                    },
                    new MyPage()
                    {
                        IsSelected = true,
                        GUID = "bbbb"
                    },
                    new MyPage()
                    {
                        IsSelected = false,
                        GUID = "cccc"
                    }
                },
                ChoosedLanguages = new List<MyLanguage> ()
                {
                    new MyLanguage()
                    {
                        IsSelected = true,
                        LanguageName = "en"
                    },
                    new MyLanguage()
                    {
                        IsSelected = false,
                        LanguageName = "sk"
                    },
                    new MyLanguage()
                    {
                        IsSelected = true,
                        LanguageName = "ru"
                    }
                }
            };
            using ( var store = DynamicDataStoreFactory.Instance.GetOrCreateStore(typeof( MyConfiguration ) ))
            {
                store.Save ( configuration );
                var config = store.Items<MyConfiguration> ()
                    .Include ( m=> m.ChoosedPages )
                    .FirstOrDefault ( m => m.MyNumber == 1 &&
                                           m.ChoosedPages.Any ( p => p.IsSelected ));
                if( config != null )
                    config.ChoosedLanguages = new List<MyLanguage>();
            }
        }
    }

This compiles, but throws 'Method 'Any' Not supported' exception.

Please help.


Viewing all articles
Browse latest Browse all 9076

Trending Articles