{"record":{"id":"3d5eb994f7fe6106","repo":"litedb-org/LiteDB","slug":"member","errorCode":null,"errorMessage":"member","messagePattern":"member","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"LiteDB/Client/Mapper/EntityBuilder.cs","lineNumber":101,"sourceCode":"        }\n\n        /// <summary>\n        /// Define a subdocument (or a list of) as a reference\n        /// </summary>\n        public EntityBuilder<T> DbRef<K>(Expression<Func<T, K>> member, string collection = null)\n        {\n            return this.GetMember(member, (p) =>\n            {\n                BsonMapper.RegisterDbRef(_mapper, p, _typeNameBinder, collection ?? _mapper.ResolveCollectionName(typeof(K)));\n            });\n        }\n\n        /// <summary>\n        /// Get a property based on a expression. Eg.: 'x => x.UserId' return string \"UserId\"\n        /// </summary>\n        private EntityBuilder<T> GetMember<TK, K>(Expression<Func<TK, K>> member, Action<MemberMapper> action)\n        {\n            if (member == null) throw new ArgumentNullException(nameof(member));\n            _entity.WaitForInitialization();\n            \n            var memb = _entity.GetMember(member);\n\n            if (memb == null)\n            {\n                throw new ArgumentNullException($\"Member '{member.GetPath()}' not found in type '{_entity.ForType.Name}' (use IncludeFields in BsonMapper)\");\n            }\n\n            action(memb);\n\n            return this;\n        }\n    }\n}","sourceCodeStart":83,"sourceCodeEnd":116,"githubUrl":"https://github.com/litedb-org/LiteDB/blob/f906a5f850678719e39a39a006cb66dcae563cfa/LiteDB/Client/Mapper/EntityBuilder.cs#L83-L116","documentation":"Thrown by EntityBuilder.GetMember (the shared helper behind Ignore, Field, Id, DbRef) when the member selector expression is null. The builder needs a non-null Expression<Func<T,K>> to resolve the target property/field. (A second throw in the same method handles a member that resolves to null with a different message; this one is specifically for a null expression argument.)","triggerScenarios":"Calling builder.Id(null), builder.Ignore(null), builder.Field(null, \"name\"), or builder.DbRef(null), or passing an expression variable that was conditionally assigned null.","commonSituations":"Building a fluent mapping where some selectors are optional and a branch leaves them null, or refactoring a lambda out into a variable and forgetting to initialize it.","solutions":["Pass a real member selector, e.g. builder.Id(x => x.Id).","Null-check the expression before configuring if it is built dynamically.","If the member may not exist, catch the separate 'Member not found' message and decide whether to skip configuration."],"exampleFix":"// before\nbuilder.Id(idSelector); // idSelector is null\n\n// after\nif (idSelector == null)\n    throw new InvalidOperationException(\"An Id member selector must be provided.\");\nbuilder.Id(idSelector);","handlingStrategy":"validation","validationCode":"if (member == null)\n    throw new ArgumentException(\"A member selector expression is required.\", nameof(member));","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pass concrete lambdas like x => x.Id.","Null-check dynamically-built selectors before configuring the entity."],"tags":["mapper","entity-builder","argument-null","linq"],"backgroundTag":null,"analyzedSha":"f906a5f850678719e39a39a006cb66dcae563cfa","analyzedAt":"2026-08-13T21:56:30.148Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}